What you probably want is: Framework fw = context.getBundle(0).adapt(Framework.class);
fw.waitForStop(timeout); - Ray On Thu, Sep 17, 2015 at 4:02 PM, <marc.schle...@sdv-it.de> wrote: > Hello everyone > > I created a little executable-jar which launches Felix. After some > computation has been done the framework is shutdown by using > context.getBundle(0).stop() > > This however always throws an InterruptedException > > java.lang.InterruptedException > at java.lang.Object.wait(Native Method) > at > org.apache.felix.framework.util.ThreadGate.await(ThreadGate.java:79) > at org.apache.felix.framework.Felix.waitForStop(Felix.java:1068) > at aQute.launcher.Launcher.deactivate(Launcher.java:738) > at aQute.launcher.Launcher.run(Launcher.java:287) > at aQute.launcher.Launcher.main(Launcher.java:87) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) > at java.lang.reflect.Method.invoke(Unknown Source) > at > aQute.launcher.pre.EmbeddedLauncher.main(EmbeddedLauncher.java:38) > > My only guess is, that this has something to do with the way I execute my > code: I use an @Activate method which runs some code and shuts down the > framework before it completes > > @Activate > void activate(ComponentContext ctx){ > this.context = ctx.getBundleContext(); > try{ > executeGroovy(); > }catch(Throwable t){ > t.printStackTrace(); > } > > String keepAlive = context.getProperty( > "de.sdv.geb.runner.keepAlive"); > > if(!Boolean.parseBoolean(keepAlive)){ > try { > System.out.println("Shutting down"); > context.getBundle(0).stop(); > } catch (BundleException e) { > System.err.println("Error stopping > OSGI-Container...killing VM now"); > e.printStackTrace(); > // hard way > System.exit(1); > } > } > } > > Using Felix 5.2.0 and the executable jar is created with BndTool 3.0.0 > from a run-descriptor. > > Any ideas how to get rid of this exceptions? > > Thanks > Marc -- *Raymond Augé* <http://www.liferay.com/web/raymond.auge/profile> (@rotty3000) Senior Software Architect *Liferay, Inc.* <http://www.liferay.com> (@Liferay) Board Member & EEG Co-Chair, OSGi Alliance <http://osgi.org> (@OSGiAlliance)