/** * Called by the <code>exit</code> method. The default implementation first saves the user preferences. * You should not call this method directly. If you override this method, make sure to call the base * class version as well. * * @see #savePreferences() */ protected void handleImminentExit() { Debug.trace(getAppName() + ": handleImminentExit entered"); if (!unexpectedShutdown) { // fix BEAM-712 (nf 2007.11.02) Debug.trace("(1)"); LayoutPersistence layoutPersistence = getMainFrame().getLayoutPersistence(); if (layoutPersistence != null) { layoutPersistence.saveLayoutData(); // produces a dead lock, method is certainly not threadsafe! } } Debug.trace("(2)"); savePreferences(); Debug.trace("(3)"); HelpSys.dispose(); // todo - disposing the HelpSystem should be done in the BeamUiActivator.stop() method Debug.trace(getAppName() + ": handleImminentExit exited"); }