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
* Make a working copy of the receiver.
	 * 
	 * @return MarkerFieldFilterGroup or <code> null</code> if it failed.
	 */
	MarkerFieldFilterGroup makeWorkingCopy() {
		MarkerFieldFilterGroup clone = new MarkerFieldFilterGroup(this.element,
				this.generator);
		if (populateClone(clone))
			return clone;
		return null;
	}
	/**
	 * Populate the clone and return true if successful.
	 * 
	 * @param clone
	 */
	protected boolean populateClone(MarkerFieldFilterGroup clone) {
		clone.scope = this.scope;
		clone.workingSet = this.workingSet;
		clone.enabled = this.enabled;
		clone.fieldFilters = new MarkerFieldFilter[getFieldFilters().length];
		clone.name = name;
		clone.id = id;
		for (int i = 0; i < fieldFilters.length; i++) {
			try {
				clone.fieldFilters[i] = (MarkerFieldFilter) fieldFilters[i]
						.getClass().newInstance();
				fieldFilters[i].populateWorkingCopy(clone.fieldFilters[i]);
			} catch (InstantiationException e) {
				StatusManager.getManager().handle(