Project: Eclipse_Platform_UI
Bug 414254 Status line controls are disposed and recreated on any window close
Reported: 2013-08-01 17:04:48 | Status: verified fixed

1) Set a breakpoint in org.eclipse.jface.action.StatusLineManager.update(boolean) 2) Start a runtime workbench - update will be called to create the new status bar 3) Close the runtime workbench - update will be called to recreate the status bar In WorkbenchPage, the partDeactivated listener will call status line manager update(). If the status bar is not dirty, this is fine. However, when a workbench window is closed, some controls are disposed, making the status bar as being dirty. The update() call happens after it is marked dirty, but before the status line manager is disposed. The update call will dispose each control in the status bar, then recreate them (calling fill() on each contribution). Before calling update() from the partDeactivation listener we can check if the window is being closed and skip updating. The controls will still be disposed (either from the shell disposing or when the status line manager is disposed).

Files changed in fix:
bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchPage.java