Buggy code:
private void updateActionMap ( ) { } public void addPageListener ( IPageListener l ) { } public void addPerspectiveListener ( org . eclipse . ui . IPerspectiveListener l ) { } void addPerspectiveShortcut ( IPerspectiveDescriptor perspective , WorkbenchPage page ) { } protected void addShortcutBar ( int style ) { } protected void addToolBar ( int style ) { } private boolean busyClose ( ) { } protected IWorkbenchPage busyOpenPage ( String perspID , IAdaptable input ) throws WorkbenchException { } public int open ( ) { } protected boolean canHandleShellCloseEvent ( ) { } public boolean close ( ) { } protected boolean isClosing ( ) { } protected boolean isToolBarLocked ( ) { } private void closeAllPages ( ) { } public void closeAllPages ( boolean save ) { } protected boolean closePage ( IWorkbenchPage in , boolean save ) { } private void showEmptyWindowMessage ( ) { } protected void configureShell ( Shell shell ) { } private void createShortcutBar ( Shell shell ) { } protected Control createToolBarControl ( Shell shell ) { } protected ToolBarManager createToolBarManager ( int style ) { } protected MenuManager createMenuManager ( ) { } void enableDragShortcutBarPart ( ) { } public void fillActionBars ( WWinActionBars actionBars ) { } IContributionItem findPerspectiveShortcut ( IPerspectiveDescriptor perspective , WorkbenchPage page ) { } private void firePageActivated ( IWorkbenchPage page ) { } private void firePageClosed ( IWorkbenchPage page ) { } private void firePageOpened ( IWorkbenchPage page ) { } void firePerspectiveActivated ( IWorkbenchPage page , IPerspectiveDescriptor perspective ) { } void firePerspectiveChanged ( IWorkbenchPage page , IPerspectiveDescriptor perspective , String changeId ) { } void firePerspectiveClosed ( IWorkbenchPage page , IPerspectiveDescriptor perspective ) { } void firePerspectiveOpened ( IWorkbenchPage page , IPerspectiveDescriptor perspective ) { } public IActionBars getActionBars ( ) { } final WorkbenchActionBuilder getActionBuilder ( ) { } public IWorkbenchPage getActivePage ( ) { } WorkbenchPage getActiveWorkbenchPage ( ) { } protected CoolBar getCoolBarControl ( ) { } public CoolBarManager getCoolBarManager ( ) { } protected Composite getClientComposite ( ) { } public MenuManager getMenuManager ( ) { } public int getNumber ( ) { } public IWorkbenchPage [ ] getPages ( ) { } public IPartService getPartService ( ) { } public KeyBindingService getKeyBindingService ( ) { } private void updateActiveActions ( ) { } protected Layout getLayout ( ) { } public IPerspectiveService getPerspectiveService ( ) { } protected Label getSeparator2 ( ) { } protected Label getSeparator3 ( ) { } public ISelectionService getSelectionService ( ) { } public boolean getShellActivated ( ) { } public ToolBarManager getShortcutBar ( ) { } ShortcutBarPartDragDrop getShortcutDND ( ) { } public boolean getShowShortcutBar ( ) { } public boolean getShowStatusLine ( ) { } public boolean getShowToolBar ( ) { } public StatusLineManager getStatusLineManager ( ) { } protected Control getToolBarControl ( ) { } public ToolBarManager getToolBarManager ( ) { } public IWorkbench getWorkbench ( ) { } public String getToolbarLabel ( String actionSetId ) { } private boolean hardClose ( ) { } public boolean isApplicationMenu ( String menuID ) { } boolean isWorkbenchCoolItemId ( String id ) { } void lockToolBar ( boolean lock ) { } public boolean okToClose ( ) { } public IWorkbenchPage openPage ( final String perspId , final IAdaptable input ) throws WorkbenchException { } public IWorkbenchPage openPage ( IAdaptable input ) throws WorkbenchException { } public void removePageListener ( IPageListener l ) { } public void removePerspectiveListener ( org . eclipse . ui . IPerspectiveListener l ) { } void removePerspectiveShortcut ( IPerspectiveDescriptor perspective , WorkbenchPage page ) { } private IStatus unableToRestorePage ( IMemento pageMem ) { } public IStatus restoreState ( IMemento memento , IPerspectiveDescriptor activeDescriptor ) { } public void run ( boolean fork , boolean cancelable , IRunnableWithProgress runnable ) throws InterruptedException , InvocationTargetException { ToolBarManager shortcutBar = getShortcutBar ( ) ; Control shortcutBarControl = null ; if ( shortcutBar != null ) shortcutBarControl = shortcutBar . getControl ( ) ; boolean shortcutbarWasEnabled = false ; if ( shortcutBarControl != null ) <START_BUG> shortcutbarWasEnabled = shortcutBarControl . isEnabled ( ) ; <END_BUG> try { if ( ( shortcutBarControl != null ) && ( ! ( shortcutBarControl . isDisposed ( ) ) ) ) shortcutBarControl . setEnabled ( false ) ; super . run ( fork , cancelable , runnable ) ; } finally { if ( ( shortcutBarControl != null ) && ( ! ( shortcutBarControl . isDisposed ( ) ) ) ) shortcutBarControl . setEnabled ( shortcutbarWasEnabled ) ; } } private boolean saveAllPages ( boolean bConfirm ) { } public IStatus saveState ( IMemento memento ) { } void selectPerspectiveShortcut ( IPerspectiveDescriptor perspective , WorkbenchPage page , boolean selected ) { } public void setActivePage ( final IWorkbenchPage in ) { } public void setShowShortcutBar ( boolean show ) { } public void setShowStatusLine ( boolean show ) { } public void setShowToolBar ( boolean show ) { } private void showShortcutBarPopup ( MouseEvent e ) { } protected boolean toolBarChildrenExist ( ) { } private void trackShellActivation ( Shell shell ) { } private void trackShellResize ( Shell newShell ) { } public void updateActionBars ( ) { } public void updateActionSets ( ) { } void updatePerspectiveShortcut ( IPerspectiveDescriptor oldDesc , IPerspectiveDescriptor newDesc , WorkbenchPage page ) { } public void updateBarVisibility ( ) { } public void updateTitle ( ) { } class PageList { private List pageList ; private List pageStack ; private Object active ; public PageList ( ) { } public boolean add ( Object object ) { } public Iterator iterator ( ) { } public boolean contains ( Object object ) { } public boolean remove ( Object object ) { } public boolean isEmpty ( ) { } public IWorkbenchPage [ ] getPages ( ) { } public void setActive ( Object page ) { } public WorkbenchPage getActive ( ) { } public WorkbenchPage getNextActive ( ) { } } }

Fix:
shortcutbarWasEnabled = shortcutBarControl . getEnabled ( ) ;