The quick answer is that you need to
stop your custom registry before org.eclipse.equinox.registry bundle is
Normally bundles are stopped in the
reverse order of dependency, i.e., if a bundle MyBundle depends on the
org.eclipse.equinox.registry, then MyBundle is stopped first on shutdown,
then org.eclipse.equinox.registry. So, normally, you could put the code
to stop your custom registry into MyBundle's activator#stop().
I *guess* that putting inappropriate
bundle start levels could break the shutdown order.
"Jason Hao" <jason.hao@xxxxxxxxx> Sent by: equinox-dev-bounces@xxxxxxxxxxx
10/20/2006 03:52 AM
Please respond to
Equinox development mailing list <equinox-dev@xxxxxxxxxxx>
[equinox-dev] NPE from RegistryStrategyOSGI.onStop()
I'm working on a project which is based on OSGi and equinox. The project
also includes equinox extension registry bundle. Since my extensions are
defined in files which are not in side the bundles, I need to load these
extensions into registry by IExtensionRegistry.addContribution() method.
And addContribution() method needs the master token which is under control
of equinox registry bundle and I can't get it, so I have to create my registry
instead of using the default registry. Here are what I have done.
"-Declipse.createRegistry=false" into VM arguments. This will
disable the default registry.
my extension registry component and register it with declarative service
spec. In the activate() method I creat my OSGi strategy and registry. In
the deactivate() method I call IExtensionRegistry.stop() method to stop
my application and the registry works well.
the OSGi framework by typing "shutdown" command in the console.
org.eclipse.core.internal.registry.osgi.Activator.stop () method is called
and the bundle context is set to null. Then my registry deactivate() method
is called. I got java.lang.NullPointerException from org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.onStop(RegistryStrategyOSGI.java
:204) since the bundle context is null.
I wonder if there's any way I can work around. Thanks.
Jason Hao _______________________________________________
equinox-dev mailing list