[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [equinox-dev] Exceptions accessing preferences during shutdown


Actually, we don't need to force bundle activation during creation of executable extensions. I think that code is from before we had auto-activation provided by the class loader.


----- Forwarded by Rafael Chaves/Ottawa/IBM on 16/03/2004 10:47 AM -----
Rafael Chaves/Ottawa/IBM

16/03/2004 10:44 AM

To
equinox-dev@xxxxxxxxxxx
cc
Subject
Re: [equinox-dev] Exceptions accessing preferences during shutdownLink




I have been seeing this as well. Generally speaking, a plugin being shutdown should not cause others to be started, because it defeats the purpose of shutting down plugins.

In this case, it seems the resources plugin is causing itself to be re-activated. ConfigurationElement#createExecutableExtension will try to start the bundle that provided the executable extension class unless its state is ACTIVE | STARTING. Maybe we should extend that test to not try to start the bundle when it is STOPPING too.

It seems the resources plugin is creating


John Arthorne/Ottawa/IBM@IBMCA
Sent by: equinox-dev-admin@xxxxxxxxxxx

15/03/2004 07:03 PM

Please respond to
equinox-dev

To
equinox-dev@xxxxxxxxxxx
cc
Subject
[equinox-dev] Exceptions accessing preferences during shutdown






I'm seeing these exceptions in my runtime workbench log.  It looks like you can't create executable extensions during a bundle shutdown? If so, is this a reasonable limitation for the runtime to impose?



org.osgi.framework.BundleException: Bundle state change in progress

at java.lang.Throwable.<init>(Throwable.java)

at java.lang.Throwable.<init>(Throwable.java)

at org.osgi.framework.BundleException.<init>(BundleException.java:68)

at org.eclipse.osgi.framework.internal.core.Bundle.beginStateChange(Bundle.java:1228)

at org.eclipse.osgi.framework.internal.core.Bundle.start(Bundle.java:333)

at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:133)

at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:125)

at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:114)

at org.eclipse.core.internal.preferences.PreferencesService.createNode(PreferencesService.java:75)

at org.eclipse.core.internal.preferences.RootPreferences.node(RootPreferences.java:105)

at org.eclipse.core.internal.preferences.EclipsePreferences.node(EclipsePreferences.java:533)

at org.eclipse.core.resources.ResourcesPlugin.shutdown(ResourcesPlugin.java:299)

at org.eclipse.core.internal.compatibility.PluginActivator.stop(PluginActivator.java:66)

at org.eclipse.osgi.framework.internal.core.BundleContext$2.run(BundleContext.java:1028)

at java.security.AccessController.doPrivileged(AccessController.java:189)

at org.eclipse.osgi.framework.internal.core.BundleContext.stop(BundleContext.java:1024)

at org.eclipse.osgi.framework.internal.core.BundleHost.stopWorker(BundleHost.java:482)

at org.eclipse.osgi.framework.internal.core.Bundle.stop(Bundle.java:480)

at org.eclipse.core.internal.plugins.PluginStopper.run(PluginStopper.java:99)

at org.eclipse.core.internal.runtime.PlatformActivator.stopLegacyBundles(PlatformActivator.java:290)

at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:272)

at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:173)

at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:106)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:41)

at java.lang.reflect.Method.invoke(Method.java:386)

at org.eclipse.core.launcher.Main.basicRun(Main.java:305)

at org.eclipse.core.launcher.Main.run(Main.java:745)

at org.eclipse.core.launcher.Main.main(Main.java:713)