Buggy code:
public final class Workbench implements IWorkbench { private static final String [ ] VERSION_STRING = new String [ ] { "0.046" , "2.0" } ; private static final String DEFAULT_WORKBENCH_STATE_FILENAME = "workbench.xml" ; private static final int RESTORE_CODE_OK = 0 ; private static final int RESTORE_CODE_RESET = 1 ; private static final int RESTORE_CODE_EXIT = 2 ; private static Workbench instance ; private static WorkbenchTestable testableObject ; private Display display ; private WindowManager windowManager ; private WorkbenchWindow activatedWindow ; private EditorHistory editorHistory ; private boolean runEventLoop = true ; private boolean isStarting = true ; private boolean isClosing = false ; private int returnCode ; private ListenerList windowListeners = new ListenerList ( ) ; private WorkbenchAdvisor advisor ; private WorkbenchConfigurer workbenchConfigurer ; private Workbench ( Display display , WorkbenchAdvisor advisor ) { } public static final Workbench getInstance ( ) { } public static final int createAndRunWorkbench ( Display display , WorkbenchAdvisor advisor ) { } public static Display createDisplay ( ) { } public static WorkbenchTestable getWorkbenchTestable ( ) { } private IMutableActivityManager activityManager ; ICommandManager commandManager ; private WorkbenchActivityService workbenchActivityService ; private final ICompoundActivityService compoundActivityService = ActivityServiceFactory . getCompoundActivityService ( ) ; public WorkbenchActivitiesCommandsAndRoles workbenchActivitiesCommandsAndRoles = new WorkbenchActivitiesCommandsAndRoles ( this ) ; private WorkbenchActivityHelper activityHelper ; public IActivityManager getActivityManager ( ) { } public void setEnabledActivityIds ( Set enabledActivityIds ) { } public ICommandManager getCommandManager ( ) { } public IActivityService getActivityService ( ) { } public ICompoundActivityService getCompoundActivityService ( ) { } private volatile boolean keyFilterDisabled ; private final Object keyFilterMutex = new Object ( ) ; public final void disableKeyFilter ( ) { } public final void enableKeyFilter ( ) { } public final boolean isKeyFilterEnabled ( ) { } public void addWindowListener ( IWindowListener l ) { } public void removeWindowListener ( IWindowListener l ) { } protected void fireWindowOpened ( IWorkbenchWindow window ) { } protected void fireWindowClosed ( IWorkbenchWindow window ) { } protected void fireWindowActivated ( IWorkbenchWindow window ) { } protected void fireWindowDeactivated ( IWorkbenchWindow window ) { } private boolean busyClose ( final boolean force ) { } public boolean saveAllEditors ( boolean confirm ) { } private IWorkbenchWindow busyOpenWorkbenchWindow ( String perspID , IAdaptable input ) throws WorkbenchException { } public boolean close ( ) { } boolean close ( int returnCode , final boolean force ) { } public IWorkbenchWindow getActiveWorkbenchWindow ( ) { } protected EditorHistory getEditorHistory ( ) { } public IEditorRegistry getEditorRegistry ( ) { } private int getNewWindowNumber ( ) { } public IPerspectiveRegistry getPerspectiveRegistry ( ) { } public PreferenceManager getPreferenceManager ( ) { } public IPreferenceStore getPreferenceStore ( ) { } public ISharedImages getSharedImages ( ) { } WindowManager getWindowManager ( ) { } private File getWorkbenchStateFile ( ) { } public int getWorkbenchWindowCount ( ) { } public IWorkbenchWindow [ ] getWorkbenchWindows ( ) { } public IWorkingSetManager getWorkingSetManager ( ) { } private boolean init ( ImageDescriptor windowImage , Display display ) { } private void initializeSingleClickOption ( ) { } private void initializeFonts ( ) { } private void installFont ( String fontKey , FontRegistry registry , IPreferenceStore store ) { } private void initializeImages ( ImageDescriptor windowImage ) { } private void initializeColors ( ) { } public boolean isClosing ( ) { } boolean isStarting ( ) { } private WorkbenchWindow newWorkbenchWindow ( ) { } private void forceOpenPerspective ( ) { } private void openFirstTimeWindow ( ) { } private int openPreviousWorkbenchState ( ) { } public IWorkbenchWindow openWorkbenchWindow ( IAdaptable input ) throws WorkbenchException { } public IWorkbenchWindow openWorkbenchWindow ( final String perspID , final IAdaptable input ) throws WorkbenchException { } private XMLMemento recordWorkbenchState ( ) { } public boolean restart ( ) { } private IStatus restoreState ( IMemento memento ) { } public IPluginDescriptor [ ] getEarlyActivatedPlugins ( ) { } private void startPlugins ( ) { } private int runUI ( ) { } private void runEventLoop ( Window . IExceptionHandler handler , Display display ) { } private IStatus saveState ( IMemento memento ) { } private boolean saveMementoToFile ( XMLMemento memento ) { } public IWorkbenchPage showPerspective ( String perspectiveId , IWorkbenchWindow window ) throws WorkbenchException { } public IWorkbenchPage showPerspective ( String perspectiveId , IWorkbenchWindow window , IAdaptable input ) throws WorkbenchException { } private void shutdown ( ) { advisor . postShutdown ( ) ; WorkbenchColors . shutdown ( ) ; JFaceColors . disposeColors ( ) ; if ( ( getDecoratorManager ( ) ) != null ) { ( ( org . eclipse . ui . internal . decorators . DecoratorManager ) ( getDecoratorManager ( ) ) ) . shutdown ( ) ; } activityHelper . shutdown ( ) ; <START_BUG> org . eclipse . core . runtime . Platform . getJobManager ( ) . shutdown ( ) ; <END_BUG> } public IDecoratorManager getDecoratorManager ( ) { } private WorkbenchWindow getActivatedWindow ( ) { } void setActivatedWindow ( WorkbenchWindow window ) { } WorkbenchConfigurer getWorkbenchConfigurer ( ) { } WorkbenchAdvisor getAdvisor ( ) { } public Display getDisplay ( ) { } public String getDefaultPerspectiveId ( ) { } public IAdaptable getDefaultWindowInput ( ) { } public String getMainPreferencePageId ( ) { } public IElementFactory getElementFactory ( String factoryId ) { } public IObjectActivityManager getObjectActivityManager ( String id , boolean create ) { } public IProgressService getProgressService ( ) { } }

Fix:
org . eclipse . ui . internal . progress . ProgressManager . getInstance ( ) . shutdown ( ) ;