Bug 300032 [Markers] NPE in MarkerFieldFilterGroup.selectByScope
I20100115-1100 I had a Java editor open and dirty. The Problems view was NOT visible (topmost in that view stack was Progress). I pressed 'Alt+Shift+W, P, Return' to reveal the file in the Package Explorer. The stored file had no compile problems, but the the working copy in the editor had a problem which I fixed shortly before I started the Show In action. java.lang.NullPointerException at org.eclipse.ui.internal.views.markers.MarkerFieldFilterGroup.selectByScope(MarkerFieldFilterGroup.java:693) at org.eclipse.ui.internal.views.markers.MarkerContentGenerator.select(MarkerContentGenerator.java:781) at org.eclipse.ui.internal.views.markers.MarkerContentGenerator.internalGatherMarkers(MarkerContentGenerator.java:1073) at org.eclipse.ui.internal.views.markers.MarkerContentGenerator.gatherMarkers(MarkerContentGenerator.java:1013) at org.eclipse.ui.internal.views.markers.MarkerContentGenerator.generateMarkerEntries(MarkerContentGenerator.java:991) at org.eclipse.ui.internal.views.markers.MarkerUpdateJob.clean(MarkerUpdateJob.java:117) at org.eclipse.ui.internal.views.markers.MarkerUpdateJob.buildMarkers(MarkerUpdateJob.java:77) at org.eclipse.ui.internal.views.markers.MarkerUpdateJob.run(MarkerUpdateJob.java:57) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/views/markers/MarkerContentGenerator.java
void saveSate(IMemento memento, MarkerField[] displayedFields) {
		for (int i = 0; i < displayedFields.length; i++) {
			memento.createChild(TAG_COLUMN_VISIBILITY, displayedFields[i]
					.getConfigurationElement().getAttribute(
							MarkerSupportInternalUtilities.ATTRIBUTE_ID));
		}
	}
	void restoreState(IMemento memento) {
		initialiseVisibleFields(memento);
	}
	/**
	 * Initialize the visible fields based on the initial settings or the
	 * contents of the {@link IMemento}
	 * 
	 * @param memento
	 *            IMemento
	 */
	private void initialiseVisibleFields(IMemento memento) {
		if (memento == null
				|| memento.getChildren(TAG_COLUMN_VISIBILITY).length == 0) {
			MarkerField[] initialFields = getInitialVisible();
			visibleFields = new MarkerField[initialFields.length];
			System.arraycopy(initialFields, 0, visibleFields, 0,
					initialFields.length);
			return;
		}
		IMemento[] visible = memento.getChildren(TAG_COLUMN_VISIBILITY);
		Collection newVisible = new ArrayList();
		MarkerField[] all = getAllFields();
		Hashtable allTable = new Hashtable();