Program: 62517
Project: 62517
Buggy source:
/** 
 * Starts up the application. <p>The startup sequence is as follows: <ol> <li>The method <code>createSplashScreen</code> is called. If it returns non-null</li> the splash screen is shown.</li> <li> The method <code>loadPreferences</code> is called in order to load user preferences.</li> <li> The method <code>startUp</code> is called with the splash screen. Clients can override this method in order to implement application specific initialisation code.</li> <li> The method <code>applyPreferences</code> is called.</li> <li> The main frame is shown.</li> <li> The splash screen (if any) is closed.</li> </ol>
 * @param pm a progress monitor, e.g. for splash-screen
 * @throws Exception if an error occurs
 */
public void startUp(ProgressMonitor pm) throws Exception {
  if (startedUp || startingUp) {
    throw new IllegalStateException("String_Node_Str");
  }
  startingUp=true;
  try {
    pm.beginTask("String_Node_Str" + getAppName(),6);
    pm.setSubTaskName("String_Node_Str");
    initLogger();
    initBeamUserDir();
    initResources();
    initPreferences();
    logStartUpInfo();
    pm.worked(1);
    if (Boolean.getBoolean("String_Node_Str")) {
      RepaintManager.setCurrentManager(new CheckThreadViolationRepaintManager());
      EventDispatchThreadHangMonitor.initMonitoring();
    }
    pm.setSubTaskName("String_Node_Str");
    initCommandManager();
    initMainFrame();
    initShutdownHook();
    initLookAndFeel();
    configureLayoutPersitence();
    configureDockingManager();
    pm.worked(1);
    initClient(SubProgressMonitor.create(pm,1));
    pm.setSubTaskName("String_Node_Str");
    configureCommandsByResourceBundle();
    initMainMenuBar();
    initMainToolBar();
    initMainPane();
    initStatusBar();
    initFrameIcon();
    pm.worked(1);
    initClientUI(SubProgressMonitor.create(pm,1));
    pm.setSubTaskName("String_Node_Str");
    applyPreferences();
    getMainFrame().getLayoutPersistence().loadLayoutData();
    clearStatusBarMessage();
    pm.worked(1);
  }
  finally {
    pm.done();
  }
  try {
    getMainFrame().setVisible(true);
    updateState();
  }
  finally {
    startedUp=true;
    startingUp=false;
  }
}

Fixed version (ground truth):
/** 
 * Starts up the application. <p>The startup sequence is as follows: <ol> <li>The method <code>createSplashScreen</code> is called. If it returns non-null the splash screen is shown.</li> <li> The method <code>loadPreferences</code> is called in order to load user preferences.</li> <li> The method <code>startUp</code> is called with the splash screen. Clients can override this method in order to implement application specific initialisation code.</li> <li> The method <code>applyPreferences</code> is called.</li> <li> The main frame is shown.</li> <li> The splash screen (if any) is closed.</li> </ol>
 * @param pm a progress monitor, e.g. for splash-screen
 * @throws Exception if an error occurs
 */
public void startUp(ProgressMonitor pm) throws Exception {
  if (startedUp || startingUp) {
    throw new IllegalStateException("String_Node_Str");
  }
  startingUp=true;
  try {
    pm.beginTask("String_Node_Str" + getAppName(),6);
    pm.setSubTaskName("String_Node_Str");
    initLogger();
    initBeamUserDir();
    initResources();
    initPreferences();
    logStartUpInfo();
    pm.worked(1);
    if (Boolean.getBoolean("String_Node_Str")) {
      RepaintManager.setCurrentManager(new CheckThreadViolationRepaintManager());
      EventDispatchThreadHangMonitor.initMonitoring();
    }
    pm.setSubTaskName("String_Node_Str");
    initCommandManager();
    initMainFrame();
    initShutdownHook();
    initLookAndFeel();
    configureLayoutPersitence();
    configureDockingManager();
    pm.worked(1);
    initClient(SubProgressMonitor.create(pm,1));
    pm.setSubTaskName("String_Node_Str");
    configureCommandsByResourceBundle();
    initMainMenuBar();
    initMainToolBar();
    initMainPane();
    initStatusBar();
    initFrameIcon();
    pm.worked(1);
    initClientUI(SubProgressMonitor.create(pm,1));
    pm.setSubTaskName("String_Node_Str");
    applyPreferences();
    getMainFrame().getLayoutPersistence().loadLayoutData();
    clearStatusBarMessage();
    pm.worked(1);
  }
  finally {
    pm.done();
  }
  try {
    getMainFrame().setVisible(true);
    updateState();
  }
  finally {
    startedUp=true;
    startingUp=false;
  }
}