This Bugzilla instance is deprecated, and most Eclipse projects now use GitHub or Eclipse GitLab. Please see the deprecation plan for details.
Bug 414254 - Status line controls are disposed and recreated on any window close
Summary: Status line controls are disposed and recreated on any window close
Status: VERIFIED FIXED
Alias: None
Product: Platform
Classification: Eclipse Project
Component: UI (show other bugs)
Version: 4.3   Edit
Hardware: PC Windows 7
: P3 normal (vote)
Target Milestone: 4.4 M2   Edit
Assignee: Paul Webster CLA
QA Contact:
URL:
Whiteboard:
Keywords: performance
Depends on:
Blocks:
 
Reported: 2013-08-01 17:04 EDT by Curtis Windatt CLA
Modified: 2013-09-17 11:22 EDT (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Curtis Windatt CLA 2013-08-01 17:04:48 EDT
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).
Comment 1 Paul Webster CLA 2013-08-12 12:38:50 EDT
Pushed a possible fix to https://git.eclipse.org/r/15373

PW
Comment 3 Paul Elder CLA 2013-09-17 11:22:09 EDT
Verified fixed in 4.4 M2 (4.4.0.I20130916-2330)