Bug 218249 [Markers] Protect against invalid IMarker attribute values
Build ID: I20071213-1700 Steps To Reproduce: I don't have a testcase for this, but hopefully the backtrace provides enough information to debug the problem. 1. Create a managed makefile C/C++ project 2. Build project (with warnings in C/C++ files), watching the "Console" tab output. 3. Click on the "Problems" tab. Every so often I get a "Process resource updates" assert. If there is any more information I can provide, please let me know. More information: !SESSION 2008-02-07 10:36:57.591 -----------------------------------------------eclipse.buildId=I20071213-1700 java.version=1.6.0_03 java.vendor=Sun Microsystems Inc. BootLoader constants: OS=linux, ARCH=x86, WS=gtk, NL=en_US Command-line arguments: -os linux -ws gtk -arch x86 -consolelog -debug !ENTRY org.eclipse.core.jobs 4 2 2008-02-07 12:37:31.465 !MESSAGE An internal error occurred during: "Process resource updates". !STACK 0 java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String at org.eclipse.ui.internal.provisional.views.markers.MarkerEntry.getLocation(MarkerEntry.java:207) at org.eclipse.ui.internal.provisional.views.markers.MarkerLocationField.getValue(MarkerLocationField.java:30) at org.eclipse.ui.internal.provisional.views.markers.api.MarkerField.compare(MarkerField.java:56) at org.eclipse.ui.internal.provisional.views.markers.MarkerComparator.compare(MarkerComparator.java:99) at java.util.Arrays.mergeSort(Unknown Source) at java.util.Arrays.mergeSort(Unknown Source) at java.util.Arrays.mergeSort(Unknown Source) at java.util.Arrays.mergeSort(Unknown Source) at java.util.Arrays.sort(Unknown Source) at org.eclipse.ui.internal.provisional.views.markers.CachedMarkerBuilder.sortAndMakeCategories(CachedMarkerBuilder.java:130) at org.eclipse.ui.internal.provisional.views.markers.CachedMarkerBuilder.buildAllMarkers(CachedMarkerBuilder.java:114) at org.eclipse.ui.internal.provisional.views.markers.CachedMarkerBuilder$1.run(CachedMarkerBuilder.java:244) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/views/markers/MarkerEntry.java
* Create a new instance of the receiver.
	 * 
	 * @param marker
	 */
	public MarkerEntry(IMarker marker) {
		this.marker = marker;
	}
	/*
	 * (non-Javadoc)
	 * 
	 * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
	 */
	public Object getAdapter(Class adapter) {
		if (adapter.equals(IMarker.class))
			return marker;
		return null;
	}
	/*
	 * (non-Javadoc)
	 * 
	 * @see org.eclipse.ui.internal.provisional.views.markers.MarkerItem#getAttributeValue(java.lang.String,
	 *      boolean)
	 */
	public boolean getAttributeValue(String attribute, boolean defaultValue) {
		Object value = getAttributeValue(attribute);
		if (value == null)
			return defaultValue;
		return ((Boolean) value).booleanValue();
	}
	/*