Bug 262706 [CommonNavigator] Sorter inconsistently uses possible children instead of trigger points
bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/navigator/CommonViewerSorter.java
}
		
		
		if(sourceOfLvalue == sourceOfRvalue) {
			ViewerSorter sorter = sorterService.findSorter(sourceOfLvalue, parent, e1, e2);
			if (sorter != null) {
				return sorter.compare(viewer, e1, e2);
			}
		} 
		if (sourceOfLvalue == null)
			sourceOfLvalue = getSource(e1);
		if (sourceOfRvalue == null)
			sourceOfRvalue = getSource(e2);		
		boolean flags[] = new boolean[4];
		flags[0] = sourceOfLvalue.isPossibleChild(e1);
		flags[1] = sourceOfLvalue.isPossibleChild(e2);
		flags[2] = sourceOfRvalue.isPossibleChild(e1);
		flags[3] = sourceOfRvalue.isPossibleChild(e2);
		
		int whoknows  = 0;		 
		whoknows  = whoknows  | (flags[0] & flags[1] ? LEFT_UNDERSTANDS : 0); 
		whoknows  = whoknows  | (flags[2] & flags[3] ? RIGHT_UNDERSTANDS : 0); 
		
		ViewerSorter sorter = null;
		
		switch(whoknows) {
			case BOTH_UNDERSTAND: 
				sorter = sourceOfLvalue.getPriority() > sourceOfRvalue.getPriority() ? 
						sorterService.findSorter(sourceOfLvalue, parent, e1, e2) : 
						sorterService.findSorter(sourceOfRvalue, parent, e1, e2);