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
name1 = e1.toString();
            name2 = e2.toString();
        } else {
            IBaseLabelProvider prov = ((ContentViewer) viewer)
                    .getLabelProvider();
            if (prov instanceof ILabelProvider) {
                ILabelProvider lprov = (ILabelProvider) prov;
                name1 = lprov.getText(e1);
                name2 = lprov.getText(e2);
            } else {
                name1 = e1.toString();
                name2 = e2.toString();
            }
        }
        if (name1 == null)
            name1 = "";
        if (name2 == null)
            name2 = "";
        
        return comparator.compare(name1, name2);
    }
    /**
     * Returns whether this viewer sorter would be affected 
     * by a change to the given property of the given element.
     * <p>
     * The default implementation of this method returns <code>false</code>.
     * Subclasses may reimplement.
     * </p>
     *
     * @param element the element