Buggy code:
public class ShowViewDialog extends Dialog implements IDoubleClickListener , ISelectionChangedListener { private static final String DIALOG_SETTING_SECTION_NAME = "ShowViewDialog" ; private static final int LIST_HEIGHT = 300 ; private static final int LIST_WIDTH = 250 ; private static final String STORE_EXPANDED_CATEGORIES_ID = ( ShowViewDialog . DIALOG_SETTING_SECTION_NAME ) + ".STORE_EXPANDED_CATEGORIES_ID" ; private static final String STORE_SELECTED_VIEW_ID = ( ShowViewDialog . DIALOG_SETTING_SECTION_NAME ) + ".STORE_SELECTED_VIEW_ID" ; private FilteredTree filteredTree ; private Button okButton ; private IViewDescriptor [ ] viewDescs = new IViewDescriptor [ 0 ] ; private IViewRegistry viewReg ; private IWorkbenchWindow window ; private Color dimmedForeground ; public ShowViewDialog ( IWorkbenchWindow window , IViewRegistry viewReg ) { } protected void buttonPressed ( int buttonId ) { } protected void cancelPressed ( ) { } protected void configureShell ( Shell shell ) { } protected void createButtonsForButtonBar ( Composite parent ) { } protected Control createDialogArea ( Composite parent ) { } private static RGB blend ( RGB c1 , RGB c2 , int ratio ) { } private static int blend ( int v1 , int v2 , int ratio ) { } private void createFilteredTreeViewer ( Composite parent ) { } private boolean hasAtMostOneView ( TreeViewer tree ) { } public void doubleClick ( DoubleClickEvent event ) { } protected IDialogSettings getDialogSettings ( ) { } public IViewDescriptor [ ] getSelection ( ) { } private void layoutTopControl ( Control control ) { } protected void restoreWidgetValues ( ) { } protected void saveWidgetValues ( ) { } public void selectionChanged ( SelectionChangedEvent event ) { } protected void updateButtons ( ) { } protected void updateSelection ( SelectionChangedEvent event ) { } protected IDialogSettings getDialogBoundsSettings ( ) { } void handleTreeViewerKeyPressed ( KeyEvent event ) { } private void popUp ( final String description ) { <START_BUG> new org . eclipse . jface . dialogs . PopupDialog ( filteredTree . getShell ( ) , org . eclipse . jface . dialogs . PopupDialog . HOVER_SHELLSTYLE , true , false , false , false , null , null ) { <END_BUG> private static final int CURSOR_SIZE = 15 ; protected org . eclipse . swt . graphics . Point getInitialLocation ( org . eclipse . swt . graphics . Point initialSize ) { org . eclipse . swt . widgets . Display display = getShell ( ) . getDisplay ( ) ; org . eclipse . swt . graphics . Point location = display . getCursorLocation ( ) ; location . x += CURSOR_SIZE ; location . y += CURSOR_SIZE ; return location ; } protected Control createDialogArea ( Composite parent ) { org . eclipse . swt . widgets . Label label = new org . eclipse . swt . widgets . Label ( parent , org . eclipse . swt . SWT . WRAP ) ; label . setText ( description ) ; label . addFocusListener ( new org . eclipse . swt . events . FocusAdapter ( ) { public void focusLost ( org . eclipse . swt . events . FocusEvent event ) { close ( ) ; } } ) ; org . eclipse . swt . layout . GridData gd = new org . eclipse . swt . layout . GridData ( ( ( org . eclipse . swt . layout . GridData . BEGINNING ) | ( org . eclipse . swt . layout . GridData . FILL_BOTH ) ) ) ; gd . horizontalIndent = org . eclipse . jface . dialogs . PopupDialog . POPUP_HORIZONTALSPACING ; gd . verticalIndent = org . eclipse . jface . dialogs . PopupDialog . POPUP_VERTICALSPACING ; label . setLayoutData ( gd ) ; return label ; } } . open ( ) ; } protected boolean isResizable ( ) { } }

Fix:
new org . eclipse . jface . dialogs . PopupDialog ( filteredTree . getShell ( ) , org . eclipse . jface . dialogs . PopupDialog . HOVER_SHELLSTYLE , true , false , false , false , false , null , null ) {