Buggy code:
private int imageSize = - 1 ; private int usableImageSize = - 1 ; private IPropertyChangeListener listener = new IPropertyChangeListener ( ) { public void propertyChange ( PropertyChangeEvent event ) { } } ; private Image emptyImage ; public PresentationLabelProvider ( ) { } public void hookListeners ( ) { } public void dispose ( ) { } public void clearFontCache ( ) { } public void clearFontCacheAndUpdate ( ) { } public Font getFont ( Object element ) { } public Image getImage ( Object element ) { } private void ensureImageSize ( ) { } public String getText ( Object element ) { } private boolean isDefault ( IThemeElementDefinition def ) { } } private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle . getBundle ( ColorsAndFontsPreferencePage . class . getName ( ) ) ; private Map categoryMap = new HashMap ( 7 ) ; private Font appliedDialogFont ; private Composite colorControls ; private Map colorPreferencesToSet = new HashMap ( 7 ) ; private CascadingColorRegistry colorRegistry ; private Button colorResetButton ; private ColorSelector colorSelector ; private Map colorValuesToSet = new HashMap ( 7 ) ; private Composite controlArea ; private StackLayout controlAreaLayout ; private Composite defaultPreviewControl ; private Text descriptionText ; private List dialogFontWidgets = new ArrayList ( ) ; private Button fontChangeButton ; private Composite fontControls ; private Map fontPreferencesToSet = new HashMap ( 7 ) ; private CascadingFontRegistry fontRegistry ; private Button fontResetButton ; private Button fontSystemButton ; private Map fontValuesToSet = new HashMap ( 7 ) ; private Composite previewComposite ; private Map previewMap = new HashMap ( 7 ) ; private Set previewSet = new HashSet ( 7 ) ; private StackLayout stackLayout ; private final IThemeRegistry themeRegistry ; private ITheme currentTheme ; private ColorsAndFontsPreferencePage . PresentationLabelProvider labelProvider ; private CascadingTheme cascadingTheme ; private IPropertyChangeListener themeChangeListener ; private Workbench workbench ; private FilteredTree tree ; public ColorsAndFontsPreferencePage ( ) { } private static boolean equals ( String string , String string2 ) { } private Button createButton ( Composite parent , String label ) { } private void createColorControl ( ) { } protected Control createContents ( Composite parent ) { } private void createDescriptionControl ( Composite parent ) { } private void createFontControl ( ) { } private void createTree ( Composite parent ) { labelProvider = new ColorsAndFontsPreferencePage . PresentationLabelProvider ( ) ; tree = new FilteredTree ( parent , ( ( ( ( SWT . SINGLE ) | ( SWT . H_SCROLL ) ) | ( SWT . V_SCROLL ) ) | ( SWT . BORDER ) ) , new PatternFilter ( ) { protected boolean isParentMatch ( Viewer viewer , Object element ) { Object [ ] children = ( ( ITreeContentProvider ) ( ( ( org . eclipse . jface . viewers . AbstractTreeViewer ) ( viewer ) ) . getContentProvider ( ) ) ) . getChildren ( element ) ; if ( ( ( children . length ) > 0 ) && ( element instanceof ThemeElementCategory ) ) { return ( filter ( viewer , element , children ) . length ) > 0 ; } return false ; } <START_BUG> } ) ; <END_BUG> GridData data = new GridData ( ( ( GridData . FILL_HORIZONTAL ) | ( GridData . VERTICAL_ALIGN_FILL ) ) ) ; data . heightHint = Math . max ( 175 , convertHeightInCharsToPixels ( 10 ) ) ; tree . setLayoutData ( data ) ; myApplyDialogFont ( tree . getViewer ( ) . getControl ( ) ) ; Text filterText = tree . getFilterControl ( ) ; if ( filterText != null ) { myApplyDialogFont ( filterText ) ; } tree . getViewer ( ) . setLabelProvider ( labelProvider ) ; tree . getViewer ( ) . setContentProvider ( new ColorsAndFontsPreferencePage . ThemeContentProvider ( ) ) ; tree . getViewer ( ) . setComparator ( new ViewerComparator ( ) { public int category ( Object element ) { if ( element instanceof ThemeElementCategory ) { return 0 ; } return 1 ; } } ) ; tree . getViewer ( ) . setInput ( WorkbenchPlugin . getDefault ( ) . getThemeRegistry ( ) ) ; tree . getViewer ( ) . addDoubleClickListener ( new IDoubleClickListener ( ) { public void doubleClick ( DoubleClickEvent event ) { IStructuredSelection s = ( ( IStructuredSelection ) ( event . getSelection ( ) ) ) ; Object element = s . getFirstElement ( ) ; if ( tree . getViewer ( ) . isExpandable ( element ) ) { tree . getViewer ( ) . setExpandedState ( element , ( ! ( tree . getViewer ( ) . getExpandedState ( element ) ) ) ) ; } if ( element instanceof FontDefinition ) { editFont ( tree . getDisplay ( ) ) ; } else if ( element instanceof ColorDefinition ) { colorSelector . open ( ) ; } } } ) ; tree . getViewer ( ) . getTree ( ) . setToolTipText ( "" ) ; new DefaultToolTip ( tree . getViewer ( ) . getControl ( ) , ToolTip . NO_RECREATE , false ) { private Object currentHoverElement ; protected String getText ( Event event ) { currentHoverElement = getHoveredElement ( event ) ; if ( ( currentHoverElement ) instanceof FontDefinition ) { FontData [ ] fontData = fontRegistry . getFontData ( ( ( FontDefinition ) ( currentHoverElement ) ) . getId ( ) ) ; StringBuffer fontTextBuffer = new StringBuffer ( ) ; for ( int i = 0 ; i < ( fontData . length ) ; i ++ ) { formatFontData ( fontTextBuffer , fontData [ i ] ) ; if ( i != ( ( fontData . length ) - 1 ) ) fontTextBuffer . append ( '\n' ) ; } return fontTextBuffer . toString ( ) ; } else if ( ( currentHoverElement ) instanceof ColorDefinition ) { RGB rgb = colorRegistry . getRGB ( ( ( ColorDefinition ) ( currentHoverElement ) ) . getId ( ) ) ; return MessageFormat . format ( "{0},<seq2seq4repair_space>{1},<seq2seq4repair_space>{2}"

Fix:
} , true ) ;