Bug 114550 IndexOutOfBoundsException in Problems Hierarchal Mode
20051101 I am not sure how I got this but I was switching to the ColorSelector.java in hierarchal mode (which has no hierarchy) Caused by: java.lang.ArrayIndexOutOfBoundsException: 0 at org.eclipse.ui.views.markers.internal.MarkerAdapter.buildHierarchy(MarkerAdapter.java:308) at org.eclipse.ui.views.markers.internal.MarkerAdapter$MarkerCategory.getChildren(MarkerAdapter.java:89) at org.eclipse.ui.views.markers.internal.MarkerTreeContentProvider.getChildren(MarkerTreeContentProvider.java:71) at org.eclipse.jface.viewers.AbstractTreeViewer.getRawChildren(AbstractTreeViewer.java:899) at org.eclipse.jface.viewers.StructuredViewer.getFilteredChildren(StructuredViewer.java:790) at org.eclipse.jface.viewers.StructuredViewer.getSortedChildren(StructuredViewer.java:905) at org.eclipse.jface.viewers.AbstractTreeViewer$1.run(AbstractTreeViewer.java:512) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:69) at org.eclipse.jface.viewers.AbstractTreeViewer.createChildren(AbstractTreeViewer.java:494) at org.eclipse.jface.viewers.AbstractTreeViewer.internalExpandToLevel(AbstractTreeViewer.java:1122) at org.eclipse.jface.viewers.AbstractTreeViewer.internalExpandToLevel(AbstractTreeViewer.java:1131) at org.eclipse.jface.viewers.AbstractTreeViewer.expandToLevel(AbstractTreeViewer.java:658) at org.eclipse.jface.viewers.AbstractTreeViewer.expandToLevel(AbstractTreeViewer.java:641) at org.eclipse.jface.viewers.AbstractTreeViewer.expandAll(AbstractTreeViewer.java:630) at org.eclipse.ui.views.markers.internal.MarkerView$7.runInUIThread(MarkerView.java:1280) at org.eclipse.ui.progress.UIJob$1.run(UIJob.java:93) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:123) ... 18 more
bundles/org.eclipse.ui.ide/src/org/eclipse/ui/views/markers/internal/MarkerAdapter.java
Collection categories = new ArrayList();
		Object previous = null;
		int categoryStart = start;
		Object[] elements = markers.getArray();
		for (int i = start; i <= end; i++) {
			if (previous != null) {
				
				if (sorter.compare(previous, elements[i], sortIndex, false) != 0) {
					categories.add(new MarkerCategory(this, categoryStart,
							i - 1, sortIndex, parent));
					categoryStart = i;
				}
			}
			previous = elements[i];
		}
		if (end >= categoryStart) {
			categories.add(new MarkerCategory(this, categoryStart, end,
					sortIndex, parent));
		}
		
		if (categories.size() == 1) {
			return buildHierarchy(markers, start, end, sortIndex + 1, parent);
		}
		MarkerCategory[] nodes = new MarkerCategory[categories.size()];
		categories.toArray(nodes);
		return nodes;
	}
	private boolean isNotCategoryField(TableSorter sorter, int sortIndex) {
		IField [] fields = sorter.getFields();
		int fieldIndex = sorter.getPriorities()[sortIndex];