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/ViewerSorter.java
/**
     * Creates a new viewer sorter, which uses the given collator
     * to sort strings.
     *
     * @param collator the collator to use to sort strings
     */
    public ViewerSorter(Collator collator) {
        this.collator = collator;
    }
    /*
     * (non-Javadoc)
     * @see org.eclipse.jface.viewers.ViewerComparator#compare(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
     */
    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)) {
            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);