Buggy code:
private class PresentationLabelProvider extends LabelProvider implements IFontProvider { private HashMap fonts = new HashMap ( ) ; private HashMap images = new HashMap ( ) ; 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 Font getFont ( Object element ) { } private void updateColumn ( String text , Font font ) { } public Image getImage ( Object element ) { } private void ensureImageSize ( Display display ) { } public String getText ( Object element ) { } } 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 int largestFontWidth ; 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 ( ) { public boolean select ( Viewer viewer , Object parentElement , 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 ; String labelText = ( ( org . eclipse . jface . viewers . ILabelProvider ) ( ( ( org . eclipse . jface . viewers . StructuredViewer ) ( viewer ) ) . getLabelProvider ( ) ) ) . getText ( element ) ; return match ( labelText ) ; } } ) ; 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 ( ) ) ; <START_BUG> myApplyDialogFont ( tree . getFilterField ( ) ) ; <END_BUG> tree . getViewer ( ) . setLabelProvider ( labelProvider ) ; tree . getViewer ( ) . setContentProvider ( new ColorsAndFontsPreferencePage . ThemeContentProvider ( ) ) ; tree . getViewer ( ) . setSorter ( new ViewerSorter ( ) { 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 ) ) ) ) ; } } } ) ; restoreTreeExpansion ( ) ; restoreTreeSelection ( ) ; } private void createPreviewControl ( Composite mainColumn ) { } public void dispose ( ) { } private void clearPreviews ( ) { } private ColorDefinition getColorAncestor ( ColorDefinition definition ) { } private RGB getColorAncestorValue ( ColorDefinition definition ) { } private RGB getColorValue ( ColorDefinition definition ) { } private Composite getDefaultPreviewControl ( ) { } private ColorDefinition [ ] getDescendantColors ( ColorDefinition definition ) { } private FontDefinition [ ] getDescendantFonts ( FontDefinition definition ) { } private FontDefinition getFontAncestor ( FontDefinition definition ) { } private FontData [ ] getFontAncestorValue ( FontDefinition definition ) { } protected FontData [ ] getFontValue ( FontDefinition definition ) { } protected ColorDefinition getSelectedColorDefinition ( ) { } protected FontDefinition getSelectedFontDefinition ( ) { } private void hookListeners ( ) { } public void init ( IWorkbench aWorkbench ) { } private void updateThemeInfo ( IThemeManager manager ) { }

Fix:
myApplyDialogFont ( tree . getFilterControl ( ) ) ;