Bug 137356 [Markers] marker grouping not working as expected via markerSupport
N20060418-0010 The Java tooling now warns when a buildpath references an execution environment for which there is no exact match in the workspace (warning support is in HEAD as of today - org.eclipse.jdt.launching and org.eclipse.jdt.debug.ui plugins). The marker created should be categorized as a buildpath problem with other JDT build path problems. To do this, I create a marker support extension as follows (in jdt.debug.ui). <extension point="org.eclipse.ui.ide.markerSupport"> <markerAttributeGrouping defaultGroupingEntry="org.eclipse.jdt.ui.category.buildpath" markerType="org.eclipse.jdt.launching.jreContainerMarker"/> </extension> My understanding is that this should group all markers of type "org.eclipse.jdt.launching.jreContainerMarker" as buildpath problems. JUI has a corresponding grouping entry: <markerGroupingEntry id="org.eclipse.jdt.ui.category.buildpath" markerGrouping="org.eclipse.jdt.ui.java_marker_category" label="%MarkerCategory.buildpath" priority="100"/> I get the following error in the log: Reference to invalid markerGroupingEntry org.eclipse.jdt.ui.category.buildpath
bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerSupportRegistry.java
removeValues(objects[i], categories);
			}
		}
		Iterator entriesIterator = markerGroupingEntries.keySet().iterator();
		Collection removedKeys = new ArrayList();
		while (entriesIterator.hasNext()) {
			String entryId = (String) entriesIterator.next();
			MarkerGroupingEntry entry = (MarkerGroupingEntry) markerGroupingEntries
					.get(entryId);
			if (removedGroups.contains(entry.getMarkerGroup())) {
				removedKeys.add(entryId);
			}
		}
		Iterator removedIterator = removedKeys.iterator();
		while (removedIterator.hasNext()) {
			markerGroupingEntries.remove(removedIterator.next());
		}
	}
	/**
	 * Remove the value from all of the collection sets in cache. If the
	 * collection is empty remove the key as well.
	 * 
	 * @param value
	 * @param cache
	 */
	private void removeValues(Object value, HashMap cache) {
		Collection keysToRemove = new ArrayList();
		Iterator keys = cache.keySet().iterator();
		while (keys.hasNext()) {
			String key = (String) keys.next();