Bug 92851 [Viewers] [api] protected field StructuredViewer.colorAndFontCollector
3.1 HEAD colorAndFontCollector protected ColorAndFontCollector colorAndFontCollector This read-write field was added as API in the 3.1 cycle. Exposing fields as API (other than public static final ones) is bad practice because a client can change the field and there's nothing the class can do to prevent or even track that change. All access to read-write field should be through accessor methods, including access from subclasses. Also, this field is missing an @since 3.1 tag.
bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/TableTreeViewer.java
/**
     * The table tree viewer implementation of this <code>Viewer</code> framework
     * method ensures that the given label provider is an instance
     * of either <code>ITableLabelProvider</code> or <code>ILabelProvider</code>.
     * If it is an <code>ITableLabelProvider</code>, then it provides a
     * separate label text and image for each column. If it is an 
     * <code>ILabelProvider</code>, then it provides only the label text 
     * and image for the first column, and any remaining columns are blank.
     */
    public void setLabelProvider(IBaseLabelProvider labelProvider) {
        Assert.isTrue(labelProvider instanceof ITableLabelProvider
                || labelProvider instanceof ILabelProvider);
        super.setLabelProvider(labelProvider);
    }
    /* (non-Javadoc)
     * Method declared in AbstractTreeViewer.
     */
    protected void setSelection(List items) {
        TableTreeItem[] newItems = new TableTreeItem[items.size()];
        items.toArray(newItems);
        getTableTree().setSelection(newItems);
    }
    /* (non-Javadoc)
     * Method declared in AbstractTreeViewer.
     */
    protected void showItem(Item item) {
        getTableTree().showItem((TableTreeItem) item);
    }
}