ops4j / org.ops4j.pax.cdi

Contexts and Dependency Injection for OSGi
Apache License 2.0
34 stars 26 forks source link

WebBeanBundleLifecycleTest fails ISE with Weld [PAXCDI-205] #250

Open ops4j-issues opened 8 years ago

ops4j-issues commented 8 years ago

Tomas Remes created PAXCDI-205

There is something wrong in this test because it starts Weld container two times with same contextId("pax-cdi-sample1-web:22" in this case) which results to:

java.lang.IllegalStateException: Singleton not set for pax-cdi-sample1-web:22 => [org.ops4j.pax.cdi.sample1:21]
    at org.jboss.weld.bootstrap.api.helpers.RegistrySingletonProvider$RegistrySingleton.get(RegistrySingletonProvider.java:28) ~[weld-osgi-bundle-2.3.1-SNAPSHOT.jar:2.3.1-SNAPSHOT]
    at org.jboss.weld.Container.instance(Container.java:65) ~[weld-osgi-bundle-2.3.1-SNAPSHOT.jar:2.3.1-SNAPSHOT]
    at org.jboss.weld.bootstrap.WeldRuntime.shutdown(WeldRuntime.java:74) ~[weld-osgi-bundle-2.3.1-SNAPSHOT.jar:2.3.1-SNAPSHOT]
    at org.jboss.weld.bootstrap.WeldBootstrap.shutdown(WeldBootstrap.java:113) ~[weld-osgi-bundle-2.3.1-SNAPSHOT.jar:2.3.1-SNAPSHOT]
    at org.ops4j.pax.cdi.weld.impl.WeldCdiContainer$2.call(WeldCdiContainer.java:130) ~[pax-cdi-weld-1.0.0-SNAPSHOT.jar:na]
    at org.ops4j.pax.swissbox.core.ContextClassLoaderUtils.doWithClassLoader(ContextClassLoaderUtils.java:60) ~[bundlefile:na]
    at org.ops4j.pax.cdi.weld.impl.WeldCdiContainer.doStop(WeldCdiContainer.java:125) ~[pax-cdi-weld-1.0.0-SNAPSHOT.jar:na]
    at org.ops4j.pax.cdi.spi.AbstractCdiContainer.stop(AbstractCdiContainer.java:97) ~[pax-cdi-spi-1.0.0-SNAPSHOT.jar:na]
    at org.ops4j.pax.cdi.extender.impl.DelegatingCdiContainer.stop(DelegatingCdiContainer.java:72) ~[pax-cdi-extender-1.0.0-SNAPSHOT.jar:na]
    at org.ops4j.pax.cdi.web.weld.impl.WeldServletContextListener.contextDestroyed(WeldServletContextListener.java:84) ~[pax-cdi-web-weld-1.0.0-SNAPSHOT.jar:na]
    at org.eclipse.jetty.server.handler.ContextHandler.callContextDestroyed(ContextHandler.java:795) ~[bundlefile:9.0.7.v20131107]
    at org.eclipse.jetty.servlet.ServletContextHandler.callContextDestroyed(ServletContextHandler.java:447) ~[bundlefile:9.0.7.v20131107]
    at org.eclipse.jetty.server.handler.ContextHandler.doStop(ContextHandler.java:829) ~[bundlefile:9.0.7.v20131107]
    at org.eclipse.jetty.servlet.ServletContextHandler.doStop(ServletContextHandler.java:212) ~[bundlefile:9.0.7.v20131107]
    at org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doStop(HttpServiceContext.java:228) ~[bundlefile:na]
    at org.eclipse.jetty.util.component.AbstractLifeCycle.stop(AbstractLifeCycle.java:90) ~[bundlefile:9.0.7.v20131107]
    at org.ops4j.pax.web.service.jetty.internal.JettyServerImpl.stop(JettyServerImpl.java:178) [bundlefile:na]
    at org.ops4j.pax.web.service.jetty.internal.ServerControllerImpl$Started.stop(ServerControllerImpl.java:277) [bundlefile:na]
    at org.ops4j.pax.web.service.jetty.internal.ServerControllerImpl.stop(ServerControllerImpl.java:77) [bundlefile:na]
    at org.ops4j.pax.web.service.internal.Activator.updateController(Activator.java:336) [bundlefile:na]
    at org.ops4j.pax.web.service.internal.Activator$3.run(Activator.java:291) [bundlefile:na]
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_60]
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_60]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_60]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_60]
    at java.lang.Thread.run(Thread.java:745) [na:1.8.0_60]
10:07:21.312 [pool-4-thread-2] ERROR o.o.p.w.s.j.internal.JettyServerImpl - Exception while stopping Jetty:
java.lang.IllegalStateException: Singleton not set for pax-cdi-sample1-web:22 => [org.ops4j.pax.cdi.sample1:21]
    at org.jboss.weld.bootstrap.api.helpers.RegistrySingletonProvider$RegistrySingleton.get(RegistrySingletonProvider.java:28) ~[weld-osgi-bundle-2.3.1-SNAPSHOT.jar:2.3.1-SNAPSHOT]
    at org.jboss.weld.Container.instance(Container.java:65) ~[weld-osgi-bundle-2.3.1-SNAPSHOT.jar:2.3.1-SNAPSHOT]
    at org.jboss.weld.bootstrap.WeldRuntime.shutdown(WeldRuntime.java:74) ~[weld-osgi-bundle-2.3.1-SNAPSHOT.jar:2.3.1-SNAPSHOT]
    at org.jboss.weld.bootstrap.WeldBootstrap.shutdown(WeldBootstrap.java:113) ~[weld-osgi-bundle-2.3.1-SNAPSHOT.jar:2.3.1-SNAPSHOT]
    at org.ops4j.pax.cdi.weld.impl.WeldCdiContainer$2.call(WeldCdiContainer.java:130) ~[pax-cdi-weld-1.0.0-SNAPSHOT.jar:na]
    at org.ops4j.pax.swissbox.core.ContextClassLoaderUtils.doWithClassLoader(ContextClassLoaderUtils.java:60) ~[bundlefile:na]
    at org.ops4j.pax.cdi.weld.impl.WeldCdiContainer.doStop(WeldCdiContainer.java:125) ~[pax-cdi-weld-1.0.0-SNAPSHOT.jar:na]
    at org.ops4j.pax.cdi.spi.AbstractCdiContainer.stop(AbstractCdiContainer.java:97) ~[pax-cdi-spi-1.0.0-SNAPSHOT.jar:na]
    at org.ops4j.pax.cdi.extender.impl.DelegatingCdiContainer.stop(DelegatingCdiContainer.java:72) ~[pax-cdi-extender-1.0.0-SNAPSHOT.jar:na]
    at org.ops4j.pax.cdi.web.weld.impl.WeldServletContextListener.contextDestroyed(WeldServletContextListener.java:84) ~[pax-cdi-web-weld-1.0.0-SNAPSHOT.jar:na]
    at org.eclipse.jetty.server.handler.ContextHandler.callContextDestroyed(ContextHandler.java:795) ~[bundlefile:9.0.7.v20131107]
    at org.eclipse.jetty.servlet.ServletContextHandler.callContextDestroyed(ServletContextHandler.java:447) ~[bundlefile:9.0.7.v20131107]
    at org.eclipse.jetty.server.handler.ContextHandler.doStop(ContextHandler.java:829) ~[bundlefile:9.0.7.v20131107]
    at org.eclipse.jetty.servlet.ServletContextHandler.doStop(ServletContextHandler.java:212) ~[bundlefile:9.0.7.v20131107]
    at org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doStop(HttpServiceContext.java:228) ~[bundlefile:na]
    at org.eclipse.jetty.util.component.AbstractLifeCycle.stop(AbstractLifeCycle.java:90) ~[bundlefile:9.0.7.v20131107]
    at org.ops4j.pax.web.service.jetty.internal.JettyServerImpl.stop(JettyServerImpl.java:178) ~[bundlefile:na]
    at org.ops4j.pax.web.service.jetty.internal.ServerControllerImpl$Started.stop(ServerControllerImpl.java:277) [bundlefile:na]
    at org.ops4j.pax.web.service.jetty.internal.ServerControllerImpl.stop(ServerControllerImpl.java:77) [bundlefile:na]
    at org.ops4j.pax.web.service.internal.Activator.updateController(Activator.java:336) [bundlefile:na]
    at org.ops4j.pax.web.service.internal.Activator$3.run(Activator.java:291) [bundlefile:na]
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_60]
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_60]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_60]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_60]
    at java.lang.Thread.run(Thread.java:745) [na:1.8.0_60]

I am not sure why the org.ops4j.pax.cdi.web.impl.CdiServletContainerInitializer#onStartup is called twice.


Votes: 0, Watches: 1