Bug 207829 - [Contributions] Unnecessary plugin activation on shutdown
Summary: [Contributions] Unnecessary plugin activation on shutdown
Status: VERIFIED FIXED
Alias: None
Product: Platform
Classification: Eclipse Project
Component: UI (show other bugs)
Version: 3.4   Edit
Hardware: PC Linux
: P3 major (vote)
Target Milestone: 3.4 M3   Edit
Assignee: Paul Webster CLA
QA Contact:
URL:
Whiteboard:
Keywords: bugday, helpwanted, performance
Depends on:
Blocks: 72322
  Show dependency tree
 
Reported: 2007-10-29 14:22 EDT by Martin Aeschlimann CLA
Modified: 2007-11-01 12:13 EDT (History)
4 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Martin Aeschlimann CLA 2007-10-29 14:22:07 EDT
I20071029-0010

On shutdown, 
PluginActionCoolBarContributionItem.handleWidgetDispose makes a call to getMenuCreator() that loads the search plugin.


SearchPlugin.<init>() line: 95	
NativeConstructorAccessorImpl.newInstance0(Constructor, Object[]) line: not available [native method]	
NativeConstructorAccessorImpl.newInstance(Object[]) line: 39	
DelegatingConstructorAccessorImpl.newInstance(Object[]) line: 27	
Constructor.newInstance(Object[]) line: 274	
Class.newInstance0() line: 308	
Class.newInstance() line: 261	
BundleHost(AbstractBundle).loadBundleActivator() line: 137	
BundleContextImpl.start() line: 970	
BundleHost.startWorker(int) line: 346	
BundleHost(AbstractBundle).start(int) line: 261	
SecureAction.start(Bundle, int) line: 400	
EclipseLazyStarter.postFindLocalClass(String, Class, ClasspathManager) line: 111	
ClasspathManager.findLocalClass(String) line: 419	
DefaultClassLoader.findLocalClass(String) line: 189	
BundleLoader.findLocalClass(String) line: 344	
BundleLoader.findClassInternal(String, boolean, ClassLoader) line: 412	
BundleLoader.findClass(String, boolean) line: 373	
BundleLoader.findClass(String) line: 361	
DefaultClassLoader.loadClass(String, boolean) line: 83	
DefaultClassLoader(ClassLoader).loadClass(String) line: 235	
BundleLoader.loadClass(String) line: 289	
BundleHost.loadClass(String, boolean) line: 227	
BundleHost(AbstractBundle).loadClass(String) line: 1269	
EquinoxRegistryStrategy(RegistryStrategyOSGI).createExecutableExtension(RegistryContributor, String, String) line: 160	
ExtensionRegistry.createExecutableExtension(RegistryContributor, String, String) line: 819	
ConfigurationElement.createExecutableExtension(String) line: 243	
ConfigurationElementHandle.createExecutableExtension(String) line: 51	
WorkbenchPlugin$1.run() line: 244	
BusyIndicator.showWhile(Display, Runnable) line: 67	
WorkbenchPlugin.createExtension(IConfigurationElement, String) line: 240	
WWinPluginPulldown(PluginAction).createDelegate() line: 122	
WWinPluginPulldown(PluginAction).getMenuCreator() line: 380	
PluginActionCoolBarContributionItem(ActionContributionItem).handleWidgetDispose(Event) line: 469	
ActionContributionItem.access$1(ActionContributionItem, Event) line: 464	
ActionContributionItem$6.handleEvent(Event) line: 445	
EventTable.sendEvent(Event) line: 66	
ToolItem(Widget).sendEvent(Event) line: 1105	
ToolItem(Widget).sendEvent(int, Event, boolean) line: 1129	
ToolItem(Widget).sendEvent(int) line: 1110	
ToolItem(Widget).release(boolean) line: 974	
ToolBar.releaseChildren(boolean) line: 402	
ToolBar(Widget).release(boolean) line: 977	
ToolBar(Control).release(boolean) line: 3156	
CoolBar(Composite).releaseChildren(boolean) line: 1175	
CoolBar(Widget).release(boolean) line: 977	
CoolBar(Control).release(boolean) line: 3156	
Composite.releaseChildren(boolean) line: 1175	
Composite(Widget).release(boolean) line: 977	
Composite(Control).release(boolean) line: 3156	
CBanner(Composite).releaseChildren(boolean) line: 1175	
CBanner(Widget).release(boolean) line: 977	
CBanner(Control).release(boolean) line: 3156	
Shell(Composite).releaseChildren(boolean) line: 1175	
Shell(Canvas).releaseChildren(boolean) line: 196	
Shell(Decorations).releaseChildren(boolean) line: 465	
Shell.releaseChildren(boolean) line: 1822	
Shell(Widget).release(boolean) line: 977	
Shell(Control).release(boolean) line: 3156	
Shell(Widget).dispose() line: 434	
Shell.dispose() line: 1767	
WorkbenchWindow(Window).close() line: 335
Comment 1 Martin Aeschlimann CLA 2007-10-29 14:31:05 EDT
That stacktrace is after replacing the search toolbar button with a dropdown (bug 72322). So it is not in I20071029-0010. I reverted the change from bug 72322 again to wait after M3.
Comment 2 Paul Webster CLA 2007-10-31 15:00:07 EDT
Since we no longer ask for the menu creator up front, asking at dispose time was activating a similar set of plugins to bug 136397

So if we don't ask for the menu creator, don't dispose it.

PW
Comment 3 Paul Webster CLA 2007-11-01 12:13:29 EDT
Since DebugUIPlugin was exhibiting the same behaviour (actived on shutdown) for the same reason, I've verified that this no longer happens in I20071101-0010

PW