Bug 214223 [Markers] 'Marker id not found' exceptions from GroupMarkerField#compare(..) in log
I20071218-0800 Log fills up with these during an incremental auto-build. IIRC, the Problems has not been made visible since the last restart. Warning Thu Jan 03 14:22:58 CET 2008 Marker id 4826685 not found. org.eclipse.core.internal.resources.ResourceException: Marker id 4826685 not found. at org.eclipse.core.internal.resources.Marker.checkInfo(Marker.java:56) at org.eclipse.core.internal.resources.Marker.getType(Marker.java:194) at org.eclipse.ui.views.markers.internal.MarkerGroup$GroupMarkerField.compare(MarkerGroup.java:306) at org.eclipse.ui.internal.provisional.views.markers.MarkerComparator.compare(MarkerComparator.java:88) at java.util.Arrays.mergeSort(Arrays.java:1293) at java.util.Arrays.mergeSort(Arrays.java:1282) at java.util.Arrays.mergeSort(Arrays.java:1282) at java.util.Arrays.mergeSort(Arrays.java:1282) at java.util.Arrays.mergeSort(Arrays.java:1282) at java.util.Arrays.mergeSort(Arrays.java:1282) at java.util.Arrays.mergeSort(Arrays.java:1282) at java.util.Arrays.mergeSort(Arrays.java:1282) at java.util.Arrays.sort(Arrays.java:1210) at org.eclipse.ui.internal.provisional.views.markers.CachedMarkerBuilder.sortAndMakeCategories(CachedMarkerBuilder.java:951) at org.eclipse.ui.internal.provisional.views.markers.CachedMarkerBuilder.buildAllMarkers(CachedMarkerBuilder.java:251) at org.eclipse.ui.internal.provisional.views.markers.CachedMarkerBuilder$1.run(CachedMarkerBuilder.java:368) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/provisional/views/markers/MarkerContentGenerator.java
Collection selectedTypes = getMarkerTypes();
		
		HashSet typesToSearch = new HashSet(selectedTypes.size());
		
		
		HashSet includeAllSubtypes = new HashSet(selectedTypes.size());
		typesToSearch.addAll(selectedTypes);
		Iterator iter = selectedTypes.iterator();
		while (iter.hasNext()) {
			MarkerType type = (MarkerType) iter.next();
			Collection subtypes = Arrays.asList(type.getAllSubTypes());
			if (selectedTypes.containsAll(subtypes)) {
				typesToSearch.removeAll(subtypes);
				includeAllSubtypes.add(type);
			}
		}
		monitor.beginTask(MarkerMessages.MarkerFilter_searching, typesToSearch
				.size()
				* resources.length);
		
		
		HashSet resourcesToSearch = new HashSet();
		
		for (int idx = 0; idx < resources.length; idx++) {
			IResource next = resources[idx];
			if (!next.exists())
				continue;
			if (resourcesToSearch.contains(next))
				monitor.worked(typesToSearch.size());