Buggy code:
private Image hover ; private Composite supportArea ; private Composite supportAreaContent ; private StatusAdapter lastSelectedStatus ; private boolean defaultSupportAreaEnabled ; private void createActions ( ) { } protected Control createContents ( Composite parent ) { } private void createImages ( ) { } private void destroyImages ( ) { } private void createSupportArea ( Composite parent , StatusAdapter statusAdapter ) { } public void enableDefaultSupportArea ( boolean enable ) { } private StatusAdapter getStatusAdapterFromEvent ( SelectionChangedEvent event ) { } private boolean providesSupport ( ) { } public void selectionChanged ( SelectionChangedEvent event ) { } } private static final String PREF_SKIP_GOTO_ACTION_PROMPT = "pref_skip_goto_action_prompt" ; private static final int GOTO_ACTION_ID = ( IDialogConstants . CLIENT_ID ) + 1 ; private boolean shouldAccept ( StatusAdapter statusAdapter , int mask ) { } private Collection errors = Collections . synchronizedSet ( new HashSet ( ) ) ; private HashMap modals = new HashMap ( ) ; private WorkbenchStatusDialogManager . InternalDialog dialog ; private Composite dialogArea ; private Composite listArea ; private Composite singleStatusDisplayArea ; private Label singleStatusLabel ; private TableViewer statusListViewer ; private WorkbenchStatusDialogManager . LabelProviderWrapper labelProviderWrapper = new WorkbenchStatusDialogManager . LabelProviderWrapper ( ) ; private WorkbenchStatusDialogManager . DetailsAreaManager detailsManager = new WorkbenchStatusDialogManager . DetailsAreaManager ( ) ; private DisposeListener disposeListener = new WorkbenchStatusDialogManager . StatusDialogDisposeListener ( ) ; private String title ; private int displayMask = 65535 ; private StatusAdapter statusAdapter ; private WorkbenchStatusDialogManager . SupportTray supportTray = new WorkbenchStatusDialogManager . SupportTray ( ) ; private Composite linkComposite ; private boolean showSupport = false ; private Link launchTrayLink ; private Link showErrorLogLink ; private boolean modalitySwitch = false ; private Rectangle shellBounds ; private boolean detailsOpened = false ; private boolean trayOpened = false ; private AbstractStatusAreaProvider userSupportProvider ; private Label titleImageLabel ; private Label mainMessageLabel ; private Composite titleArea ; private ILabelDecorator messageDecorator ; private boolean handleOKStatuses = false ; private boolean supportForErrorLog = false ; private boolean hideSupportButton = false ; public WorkbenchStatusDialogManager ( int displayMask , String dialogTitle ) { } public WorkbenchStatusDialogManager ( Shell parentShell , int displayMask , String dialogTitle ) { } public WorkbenchStatusDialogManager ( String dialogTitle ) { } public WorkbenchStatusDialogManager ( Shell parentShell , String dialogTitle ) { } public void addStatusAdapter ( final StatusAdapter statusAdapter , final boolean modal ) { } private boolean isDialogClosed ( ) { } private void cleanUp ( ) { } private void doAddStatusAdapter ( final StatusAdapter statusAdapter , final boolean modal ) { } private boolean close ( ) { } private void closeTray ( ) throws IllegalStateException { } private Control createButtonBar ( Composite parent ) { } private void createButtonsForButtonBar ( Composite parent ) { } private Control createDialogArea ( Composite parent ) { } private void createListArea ( Composite parent ) { } private Composite createSingleStatusDisplayArea ( Composite parent ) { } private Composite createLinkComposite ( Composite parent ) { } private Link createGetSupportLink ( ) { } private Link createShowErrorLogLink ( ) { } private void createTitleArea ( Composite parent ) { } public void enableDefaultSupportArea ( boolean enable ) { } private void fillListArea ( Composite parent ) { GridData listAreaGD = ( ( GridData ) ( parent . getLayoutData ( ) ) ) ; listAreaGD . grabExcessHorizontalSpace = true ; if ( ! ( detailsManager . isOpen ( ) ) ) { listAreaGD . grabExcessVerticalSpace = true ; } listAreaGD . heightHint = SWT . DEFAULT ; statusListViewer = new TableViewer ( parent , ( ( ( ( SWT . SINGLE ) | ( SWT . H_SCROLL ) ) | ( SWT . V_SCROLL ) ) | ( SWT . BORDER ) ) ) ; statusListViewer . setComparator ( getViewerComparator ( ) ) ; Control control = statusListViewer . getControl ( ) ; GridData data = new GridData ( SWT . FILL , SWT . FILL , true , true ) ; data . heightHint = dialog . convertHeightInCharsToPixels ( 5 ) ; statusListViewer . addSelectionChangedListener ( supportTray ) ; control . setLayoutData ( data ) ; initContentProvider ( ) ; initLabelProvider ( ) ; <START_BUG> statusListViewer . addSelectionChangedListener ( new ISelectionChangedListener ( ) { <END_BUG> public void selectionChanged ( SelectionChangedEvent event ) { handleSelectionChange ( ) ; } } ) ; Dialog . applyDialogFont ( parent ) ; } private IAction getGotoAction ( ) { } private Image getImage ( ) { } private Image getSWTImage ( final int imageID ) { } private String getMainMessage ( StatusAdapter statusAdapter ) { } private Shell getParentShell ( ) { } private String getPrimaryMessage ( StatusAdapter statusAdapter ) { } private String getSecondaryMessage ( StatusAdapter statusAdapter ) { } private StatusAdapter getSingleSelection ( ) { } public Collection getStatusAdapters ( ) { } private ViewerComparator getViewerComparator ( ) { } private void handleSelectionChange ( ) { } private void initContentProvider ( ) { } private void initializeBounds ( ) { } private void initLabelProvider ( ) { } private boolean isPromptToClose ( ) { } private void openStatusDialog ( final boolean modal , final StatusAdapter statusAdapter ) { } private void openTray ( DialogTray tray ) throws IllegalStateException , UnsupportedOperationException { } private void refresh ( ) { } private void refreshDialogSize ( ) { } private void refreshSingleStatusArea ( ) { } private void refreshStatusListArea ( ) { } public void setDetailsAreaProvider ( AbstractStatusAreaProvider provider ) { } private void setSelectedStatusAdapter ( StatusAdapter statusAdapter ) { } public void setStatusListLabelProvider ( ITableLabelProvider labelProvider ) { } public void setSupportAreaProvider ( AbstractStatusAreaProvider provider ) { } private boolean shouldBeModal ( ) { } private boolean shouldPrompt ( final StatusAdapter statusAdapter ) { } private void showDetailsArea ( ) { } private boolean toggleDetailsArea ( ) { } private void updateEnablements ( ) { } private IViewDescriptor shouldDisplayLinkToErrorLog ( ) { } private void hideButton ( Button button , boolean hide ) { } private void updateListArea ( ) { } private void updateTitleArea ( ) { } private Shell getShell ( ) { }

Fix:
statusListViewer . addPostSelectionChangedListener ( new ISelectionChangedListener ( ) {