Bug 128298 ViewerSorter.compare() does not need to be overridden from superclass
The ViewerComparator class was added as a superclass of ViewerSorter (for ICU4J). ViewerSorter overrides compare() from ViewerComparator, but this is not necessary if in the superclass implementation getComparator().compare() is called, instead of comparator.compare().
bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/ViewerComparator.java
/**
     * Returns a negative, zero, or positive number depending on whether
     * the first element is less than, equal to, or greater than
     * the second element.
     * <p>
     * The default implementation of this method is based on
     * comparing the elements' categories as computed by the <code>category</code>
     * framework method. Elements within the same category are further 
     * subjected to a case insensitive compare of their label strings, either
     * as computed by the content viewer's label provider, or their 
     * <code>toString</code> values in other cases. Subclasses may override.
     * </p>
     * 
     * @param viewer the viewer
     * @param e1 the first element
     * @param e2 the second element
     * @return a negative number if the first element is less  than the 
     *  second element; the value <code>0</code> if the first element is
     *  equal to the second element; and a positive number if the first
     *  element is greater than the second element
     */
    public int compare(Viewer viewer, Object e1, Object e2) {
        int cat1 = category(e1);
        int cat2 = category(e2);
        if (cat1 != cat2)
            return cat1 - cat2;
    	
        String name1;
        String name2;
        if (viewer == null || !(viewer instanceof ContentViewer)) {