Buggy code:
public final class Workbench extends EventManager implements IWorkbench { private final class StartupProgressBundleListener implements SynchronousBundleListener { private final IProgressMonitor progressMonitor ; private final int maximumProgressCount ; private final List starting ; StartupProgressBundleListener ( IProgressMonitor progressMonitor , int maximumProgressCount ) { } public void bundleChanged ( BundleEvent event ) { } } public static final String EARLY_STARTUP_FAMILY = "earlyStartup" ; static final String [ ] VERSION_STRING = new String [ ] { "0.046" , "2.0" } ; static final String DEFAULT_WORKBENCH_STATE_FILENAME = "workbench.xml" ; private static Workbench instance ; private static WorkbenchTestable testableObject ; private static boolean createSplash = false ; private static AbstractSplashHandler splash ; 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 = PlatformUI . RETURN_UNSTARTABLE ; private WorkbenchAdvisor advisor ; private WorkbenchConfigurer workbenchConfigurer ; private ExtensionEventHandler extensionEventHandler ; private int largeUpdates = 0 ; private final ServiceLocator serviceLocator = new ServiceLocator ( ) ; private int progressCount = - 1 ; private WorkbenchWindow [ ] createdWindows ; private ListenerList workbenchListeners = new ListenerList ( ListenerList . IDENTITY ) ; private Workbench ( Display display , WorkbenchAdvisor advisor ) { } public static final Workbench getInstance ( ) { } public static final int createAndRunWorkbench ( final Display display , final WorkbenchAdvisor advisor ) { } public static Display createDisplay ( ) { } private void createSplashWrapper ( ) { final Display display = getDisplay ( ) ; String splashLoc = System . getProperty ( "org.eclipse.equinox.launcher.splash.location" ) ; final Image background = loadImage ( splashLoc ) ; SafeRunnable run = new SafeRunnable ( ) { public void run ( ) throws Exception { String splashHandle = System . getProperty ( "org.eclipse.equinox.launcher.splash.handle" ) ; if ( splashHandle == null ) { Workbench . createSplash = false ; return ; } Workbench . getSplash ( ) ; if ( ( Workbench . splash ) == null ) { Workbench . createSplash = false ; return ; } Shell splashShell = null ; Method method = Shell . class . getMethod ( "internal_new" , new Class [ ] { Display . class , int . class } ) ; if ( method != null ) { splashShell = ( ( Shell ) ( method . invoke ( null , new Object [ ] { display , new Integer ( splashHandle ) } ) ) ) ; } else { method = Shell . class . getMethod ( "internal_new" , new Class [ ] { Display . class , long . class } ) ; if ( method != null ) splashShell = ( ( Shell ) ( method . invoke ( null , new Object [ ] { display , new Long ( splashHandle ) } ) ) ) ; } if ( splashShell == null ) return ; if ( background != null ) splashShell . setBackgroundImage ( background ) ; Dictionary properties = new Hashtable ( ) ; <START_BUG> properties . put ( Constants . SERVICE_RANKING , Integer . toString ( Integer . MAX_VALUE ) ) ; <END_BUG> BundleContext context = WorkbenchPlugin . getDefault ( ) . getBundleContext ( ) ; context . registerService ( StartupMonitor . class . getName ( ) , new StartupMonitor ( ) { public void applicationRunning ( ) { Workbench . splash . dispose ( ) ; if ( background != null ) background . dispose ( ) ; } public void update ( ) { } } , properties ) ; Workbench . splash . init ( splashShell ) ; } public void handleException ( Throwable e ) { StatusManager . getManager ( ) . handle ( StatusUtil . newStatus ( PI_WORKBENCH , "Could<seq2seq4repair_space>not<seq2seq4repair_space>instantiate<seq2seq4repair_space>splash" , e ) ) ; Workbench . createSplash = false ; Workbench . splash = null ; if ( background != null ) background . dispose ( ) ; } } ; SafeRunner . run ( run ) ; } private Image loadImage ( String splashLoc ) { } private static AbstractSplashHandler getSplash ( ) { } public static WorkbenchTestable getWorkbenchTestable ( ) { } public void addWorkbenchListener ( IWorkbenchListener listener ) { } public void removeWorkbenchListener ( IWorkbenchListener listener ) { } boolean firePreShutdown ( final boolean forced ) { } void firePostShutdown ( ) { } public void addWindowListener ( IWindowListener l ) { } public void removeWindowListener ( IWindowListener l ) { } protected void fireWindowOpened ( final IWorkbenchWindow window ) { } protected void fireWindowClosed ( final IWorkbenchWindow window ) { } protected void fireWindowActivated ( final IWorkbenchWindow window ) { } protected void fireWindowDeactivated ( final IWorkbenchWindow window ) { } private boolean busyClose ( final boolean force ) { } public boolean saveAllEditors ( boolean confirm ) { } private IWorkbenchWindow busyOpenWorkbenchWindow ( final String perspID , final IAdaptable input ) throws WorkbenchException { } public boolean close ( ) { } boolean close ( int returnCode , final boolean force ) { } public IWorkbenchWindow getActiveWorkbenchWindow ( ) { } public EditorHistory getEditorHistory ( ) { } public IEditorRegistry getEditorRegistry ( ) { } private int getNewWindowNumber ( ) { } public IWorkbenchOperationSupport getOperationSupport ( ) { } 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 ( ) { } public ILocalWorkingSetManager createLocalWorkingSetManager ( ) { } private boolean init ( ) { } private void initializeCommandResolver ( ) { } private void initializeApplicationColors ( ) { } private void initializeSingleClickOption ( ) { } private void initializeFonts ( ) { } private static void initializeImages ( ) { } private void uninitializeImages ( ) { }

Fix:
properties . put ( Constants . SERVICE_RANKING , new Integer ( Integer . MAX_VALUE ) ) ;