Buggy code:
private long startTime = Long . MAX_VALUE ; private final KeyBindingState state ; private final IWindowListener windowListener = new IWindowListener ( ) { public void windowActivated ( IWorkbenchWindow window ) { } public void windowClosed ( IWorkbenchWindow window ) { } public void windowDeactivated ( IWorkbenchWindow window ) { } public void windowOpened ( IWorkbenchWindow window ) { } } ; private final IWorkbench workbench ; public WorkbenchKeyboard ( Workbench associatedWorkbench , IActivityManager associatedActivityManager , ICommandManager associatedCommandManager ) { } private void checkActiveWindow ( IWorkbenchWindow window ) { } private void closeMultiKeyAssistShell ( ) { } private static boolean isEnabled ( ICommand command ) { } private boolean executeCommand ( String commandId ) throws CommandException { } private void filterKeySequenceBindings ( Event event ) { } public Listener getKeyDownFilter ( ) { } private String getPerfectMatch ( KeySequence keySequence ) { } private void incrementState ( KeySequence sequence ) { } private boolean isPartialMatch ( KeySequence keySequence ) { } private boolean isPerfectMatch ( KeySequence keySequence ) { } private final void logException ( CommandException e ) { } public final void openMultiKeyAssistShell ( final Display display ) { } public final void openMultiKeyAssistShell ( final Display display , boolean notOpenedByKeyPress ) { Point previousSize = null ; int previousWidth = - 1 ; if ( ( multiKeyAssistShell ) != null ) { if ( this . setKeyAssistPreferenceOnOpen ) { notOpenedByKeyPress = true ; } previousSize = multiKeyAssistShell . getSize ( ) ; previousWidth = ( ( Table ) ( multiKeyAssistShell . getChildren ( ) [ 0 ] ) ) . getColumn ( 0 ) . getWidth ( ) ; } StatusLineContributionItem statusLine = state . getStatusLine ( ) ; if ( statusLine == null ) { return ; } if ( ( multiKeyAssistShell ) == null ) { multiKeyAssistShell = new Shell ( display , SWT . NO_TRIM ) ; GridLayout layout = new GridLayout ( ) ; layout . marginHeight = 0 ; layout . marginWidth = 0 ; multiKeyAssistShell . setLayout ( layout ) ; multiKeyAssistShell . setBackground ( display . getSystemColor ( COLOR_INFO_BACKGROUND ) ) ; } Map partialMatches = new TreeMap ( new Comparator ( ) { public int compare ( Object a , Object b ) { KeySequence sequenceA = ( ( KeySequence ) ( a ) ) ; KeySequence sequenceB = ( ( KeySequence ) ( b ) ) ; return sequenceA . format ( ) . compareTo ( sequenceB . format ( ) ) ; } } ) ; partialMatches . putAll ( commandManager . getPartialMatches ( state . getCurrentSequence ( ) ) ) ; Iterator partialMatchItr = partialMatches . entrySet ( ) . iterator ( ) ; while ( partialMatchItr . hasNext ( ) ) { Map . Entry entry = ( ( Map . Entry ) ( partialMatchItr . next ( ) ) ) ; String commandId = ( ( String ) ( entry . getValue ( ) ) ) ; ICommand command = commandManager . getCommand ( commandId ) ; if ( ( ! ( command . isDefined ( ) ) ) || ( ! ( activityManager . getIdentifier ( command . getId ( ) ) . isEnabled ( ) ) ) ) { partialMatchItr . remove ( ) ; } } final Control [ ] children = multiKeyAssistShell . getChildren ( ) ; for ( int i = 0 ; i < ( children . length ) ; i ++ ) { children [ i ] . dispose ( ) ; } if ( partialMatches . isEmpty ( ) ) { Label noMatchesLabel = new Label ( multiKeyAssistShell , SWT . NULL ) ; noMatchesLabel . setText ( Util . translateString ( WorkbenchKeyboard . RESOURCE_BUNDLE , "NoMatches.Message" ) ) ; noMatchesLabel . setLayoutData ( new GridData ( GridData . FILL_BOTH ) ) ; noMatchesLabel . setBackground ( multiKeyAssistShell . getBackground ( ) ) ; } else { <START_BUG> final Table completionsTable = new Table ( multiKeyAssistShell , ( ( SWT . BORDER ) | ( SWT . SINGLE ) ) ) ; <END_BUG> completionsTable . setBackground ( multiKeyAssistShell . getBackground ( ) ) ; completionsTable . setLinesVisible ( true ) ; GridData gridData = new GridData ( GridData . FILL_BOTH ) ; completionsTable . setLayoutData ( gridData ) ; final List commands = new ArrayList ( ) ; TableColumn columnKeySequence = new TableColumn ( completionsTable , SWT . LEFT , 0 ) ; TableColumn columnCommandName = new TableColumn ( completionsTable , SWT . LEFT , 1 ) ; Iterator itemsItr = partialMatches . entrySet ( ) . iterator ( ) ; while ( itemsItr . hasNext ( ) ) { Map . Entry entry = ( ( Map . Entry ) ( itemsItr . next ( ) ) ) ; KeySequence sequence = ( ( KeySequence ) ( entry . getKey ( ) ) ) ; String commandId = ( ( String ) ( entry . getValue ( ) ) ) ; ICommand command = commandManager . getCommand ( commandId ) ; try { String [ ] text = new String [ ] { sequence . format ( ) , command . getName ( ) } ; TableItem item = new TableItem ( completionsTable , SWT . NULL ) ; item . setText ( text ) ; commands . add ( command ) ; } catch ( NotDefinedException e ) { } } columnKeySequence . pack ( ) ; if ( previousWidth != ( - 1 ) ) { columnKeySequence . setWidth ( previousWidth ) ; } columnCommandName . pack ( ) ; completionsTable . addSelectionListener ( new SelectionListener ( ) { public void widgetDefaultSelected ( SelectionEvent event ) { int selectionIndex = completionsTable . getSelectionIndex ( ) ; if ( selectionIndex >= 0 ) { ICommand command = ( ( ICommand ) ( commands . get ( selectionIndex ) ) ) ; try { executeCommand ( command . getId ( ) ) ; } catch ( CommandException e ) { logException ( e ) ; } }

Fix:
final Table completionsTable = new Table ( multiKeyAssistShell , ( ( ( SWT . BORDER ) | ( SWT . FULL_SELECTION ) ) | ( SWT . SINGLE ) ) ) ;