[weld-issues] [JBoss JIRA] (WELD-891) Singleton is not set exception for extension observer of BeforeShutdown event
Ales Justin (Updated) (JIRA)
jira-events at lists.jboss.org
Tue Oct 25 10:41:46 EDT 2011
[ https://issues.jboss.org/browse/WELD-891?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Ales Justin updated WELD-891:
-----------------------------
Fix Version/s: 1.2.0.Beta1
Environment: (was: Weld SE)
Component/s: Bootstrap and Metamodel API
> Singleton is not set exception for extension observer of BeforeShutdown event
> -----------------------------------------------------------------------------
>
> Key: WELD-891
> URL: https://issues.jboss.org/browse/WELD-891
> Project: Weld
> Issue Type: Bug
> Components: Bootstrap and Metamodel API, Events
> Affects Versions: 1.1.1.Final
> Reporter: Aaron Anderson
> Assignee: Ales Justin
> Fix For: 1.2.0.Beta1
>
> Attachments: weldext.zip
>
>
> When updating to Weld 1.1.1.Final from Weld 1.1.0.Final (this version works fine) the following exception is thrown during a Weld shutdown() invocation:
> 225509 [main] ERROR org.jboss.weld.Bootstrap - Exception(s) thrown during observ
> er of BeforeShutdown
> 225509 [main] ERROR org.jboss.weld.Bootstrap -
> java.lang.IllegalStateException: Singleton is not set
> at org.jboss.weld.bootstrap.api.helpers.IsolatedStaticSingletonProvider$
> IsolatedStaticSingleton.get(IsolatedStaticSingletonProvider.java:52)
> at org.jboss.weld.context.AbstractSharedContext.getBeanStore(AbstractSha
> redContext.java:54)
> at org.jboss.weld.context.AbstractContext.get(AbstractContext.java:93)
> at org.jboss.weld.manager.BeanManagerImpl.getReference(BeanManagerImpl.j
> ava:690)
> at org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.
> java:264)
> at org.jboss.weld.event.ObserverMethodImpl.notify(ObserverMethodImpl.jav
> a:234)
> at org.jboss.weld.bootstrap.events.AbstractContainerEvent.fire(AbstractC
> ontainerEvent.java:88)
> at org.jboss.weld.bootstrap.events.BeforeShutdownImpl.fire(BeforeShutdow
> nImpl.java:62)
> at org.jboss.weld.bootstrap.events.BeforeShutdownImpl.fire(BeforeShutdow
> nImpl.java:50)
> at org.jboss.weld.bootstrap.WeldBootstrap.shutdown(WeldBootstrap.java:49
> 1)
> at org.jboss.weld.environment.se.ShutdownManager.shutdown(ShutdownManage
> r.java:45)
> at org.jboss.weld.environment.se.org$jboss$weld$bean-classpath-ManagedBe
> an-org$jboss$weld$environment$se$ShutdownManager$@javax$enterprise$context$Appli
> cationScoped()${}_$$_WeldClientProxy.shutdown(org$jboss$weld$bean-classpath-Mana
> gedBean-org$jboss$weld$environment$se$ShutdownManager$@javax$enterprise$context$
> ApplicationScoped()${}_$$_WeldClientProxy.java)
> at org.jboss.weld.environment.se.Weld.shutdown(Weld.java:169)
> at org.apache.ode.server.event.EventTest.tearDownAfterClass(EventTest.ja
> va:76)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
> java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
> sorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(Framework
> Method.java:44)
> at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCal
> lable.java:15)
> at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMe
> thod.java:41)
> at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.ja
> va:37)
> at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
> at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.
> java:35)
> at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4
> Provider.java:146)
> at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider
> .java:97)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
> java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
> sorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.inv
> oke(ProviderFactory.java:103)
> at $Proxy0.invoke(Unknown Source)
> at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(Suref
> ireStarter.java:145)
> at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(S
> urefireStarter.java:87)
> at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:
> 69)
> Running the code through a debugger it looks like my CDI extension, which is not annotated with a scope annotation, is being placed in the ApplicationScope context but when Weld shutdowns the following code is invoked
> WeldBootstrap line 490:
> try
> {
> applicationContext.invalidate();
> BeforeShutdownImpl.fire(deploymentManager, beanDeployments);
> }
> which invalidates the context the extension exists in before invoking the shutdown event on the extension thus causing the exception.
> Please download and run the attached maven example by running mvn clean test
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the weld-issues
mailing list