Bug 310908 [Markers] NPE thrown by markers job
I20100426-0852 I had one editor open in my window. It was maximized and opened on an external file. When I closed it, this NPE suddenly appeared. java.lang.NullPointerException at org.eclipse.ui.internal.views.markers.MarkerFieldFilterGroup.loadSettings(MarkerFieldFilterGroup.java:448) at org.eclipse.ui.internal.views.markers.MarkerContentGenerator.loadGroupWithID(MarkerContentGenerator.java:521) at org.eclipse.ui.internal.views.markers.MarkerContentGenerator.loadFilterSettings(MarkerContentGenerator.java:449) at org.eclipse.ui.internal.views.markers.MarkerContentGenerator.loadFiltersFrom(MarkerContentGenerator.java:467) at org.eclipse.ui.internal.views.markers.MarkerContentGenerator.loadFiltersPreference(MarkerContentGenerator.java:479) at org.eclipse.ui.internal.views.markers.MarkerContentGenerator.getAllFilters(MarkerContentGenerator.java:293) at org.eclipse.ui.internal.views.markers.MarkerContentGenerator.getEnabledFilters(MarkerContentGenerator.java:307) at org.eclipse.ui.internal.views.markers.MarkerContentGenerator.getResourcesForBuild(MarkerContentGenerator.java:904) at org.eclipse.ui.internal.views.markers.MarkerContentGenerator.gatherMarkers(MarkerContentGenerator.java:1004) 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:54)
bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/views/markers/MarkerFieldFilterGroup.java
String nameString = memento.getID();
			if (nameString != null && nameString.length() > 0)
				name = nameString;
			String idString = memento.getString(IMemento.TAG_ID);
			if (idString != null && idString.length() > 0)
				id = idString;
		}
		MarkerFieldFilter[] filters = getFieldFilters();
		for (int i = 0; i < filters.length; i++) {
			if (filters[i] instanceof CompatibilityFieldFilter)
				((CompatibilityFieldFilter) filters[i]).loadLegacySettings(
						memento, generator);
		}
	}
	/**
	 * Load the current settings from the child.
	 * 
	 * @param memento -
	 *            the memento to load from
	 */
	void loadSettings(IMemento memento) {
		String enabledString = memento.getString(TAG_ENABLED);
		if (enabledString != null && enabledString.length() > 0)
			enabled = Boolean.valueOf(enabledString).booleanValue();
		scope = memento.getInteger(TAG_SCOPE).intValue();
		String workingSetName = memento.getString(TAG_WORKING_SET);
		if (workingSetName != null)
			setWorkingSet(PlatformUI.getWorkbench().getWorkingSetManager()
					.getWorkingSet(workingSetName));
		Map filterMap = new HashMap();