Bug 189694 ApplicationWindow#run() can hang Eclipse due to Menu#isEnabled
In ApplicationWindow#run() we call Menu#isEnabled to cache our enabled state. This actually crawls all of the children of the menu to determine the state. When the Shell is disabled this will return true and so when the shell is re-enabled all of the menus will be inactive. I will be attaching a Steve approved patch.
bundles/org.eclipse.jface/src/org/eclipse/jface/window/ApplicationWindow.java
* <ul>
 *   <li>creating an instance of <code>ApplicationWindow</code>
 *   </li>
 *   <li>assigning the window to a window manager (optional)
 *   </li>
 *   <li>opening the window by calling <code>open</code>
 *   </li>
 * </ul>
 * Only on the last step, when the window is told to open, are
 * the window's shell and widget tree created. When the window is
 * closed, the shell and widget tree are disposed of and are no longer
 * referenced, and the window is automatically removed from its window
 * manager. Like all windows, an application window may be reopened.
 * </p>
 * <p>
 * An application window is also a suitable context in which to perform 
 * long-running operations (that is, it implements <code>IRunnableContext</code>).
 * </p>
 */
public class ApplicationWindow extends Window implements IRunnableContext {
    /**
     * Menu bar manager, or <code>null</code> if none (default).
     *
     * @see #addMenuBar
     */
    private MenuManager menuBarManager = null;
    /**
     * Tool bar manager, or <code>null</code> if none (default).
     *
     * @see #addToolBar