[jboss-jira] [JBoss JIRA] (AS7-3107) CDI scopes should be available any message delivery to a MessageListener for a JMS topic or queue obtained from the Java EE component environment.
Jeff Mesnil (JIRA)
jira-events at lists.jboss.org
Thu Jul 19 06:02:08 EDT 2012
[ https://issues.jboss.org/browse/AS7-3107?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12706722#comment-12706722 ]
Jeff Mesnil commented on AS7-3107:
----------------------------------
I have a test in which highlights the issue in https://github.com/jmesnil/jboss-as/tree/AS7-3107_CDI_MessageListener.
Test is run with ./integration-tests.sh -Dts.noSmoke -Dts.basic -Dtest=org.jboss.as.test.integration.weld.mdb.MessageListenerInjectionTestCas
Test fails with a different stack trace than previously reported:
{noformat}
org.jboss.weld.context.ContextNotActiveException: WELD-001303 No active contexts for scope type javax.enterprise.context.RequestScoped
at org.jboss.weld.manager.BeanManagerImpl.getContext(BeanManagerImpl.java:619)
at org.jboss.weld.bean.proxy.ContextBeanInstance.getInstance(ContextBeanInstance.java:71)
at org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:104)
at org.jboss.as.test.integration.weld.mdb.ReverterService$Proxy$_$$_WeldClientProxy.revert(ReverterService$Proxy$_$$_WeldClientProxy.java)
at org.jboss.as.test.integration.weld.mdb.SimpleMessageListener.onMessage(SimpleMessageListener.java:52)
at org.hornetq.jms.client.JMSMessageListenerWrapper.onMessage(JMSMessageListenerWrapper.java:91)
at org.hornetq.core.client.impl.ClientConsumerImpl.callOnMessage(ClientConsumerImpl.java:1028)
at org.hornetq.core.client.impl.ClientConsumerImpl.access$400(ClientConsumerImpl.java:50)
at org.hornetq.core.client.impl.ClientConsumerImpl$Runner.run(ClientConsumerImpl.java:1173)
at org.hornetq.utils.OrderedExecutorFactory$OrderedExecutor$1.run(OrderedExecutorFactory.java:100)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
{noformat}
> CDI scopes should be available any message delivery to a MessageListener for a JMS topic or queue obtained from the Java EE component environment.
> --------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: AS7-3107
> URL: https://issues.jboss.org/browse/AS7-3107
> Project: Application Server 7
> Issue Type: Bug
> Components: CDI / Weld, JMS
> Reporter: Stuart Douglas
> Assignee: Stuart Douglas
>
> From Martin Kouba:
> I'm just working on CDI TCK tests related to JMS and buil-in contexts - sections "6.7.1. Request context lifecycle" and "6.7.3. Application context lifecycle".
> I found out that MDBs work great - request and app contexts are active during message delivery and request context is destroyed after message delivery completes.
> However request and app contexts should also be active during "any message delivery to a MessageListener for a JMS topic or queue obtained from the Java EE component environment.".
> I get following stacktrace (LoggerService is request scoped bean injected into dependent bean that is registered as javax.jms.MessageListener):
> 15:10:34,368 WARN [org.hornetq.jms.client.JMSMessageListenerWrapper] (Thread-1 (group:HornetQ-client-global-threads-2012075375)) Unhandled exception thrown from onMessage: java.lang.IllegalStateException: Singleton not set for ModuleClassLoader for Module "org.hornetq:main" from local module loader @32b0bad7 (roots: /opt/jboss/jboss-as-weld2/modules)
> at org.jboss.as.weld.services.ModuleGroupSingletonProvider$TCCLSingleton.get(ModuleGroupSingletonProvider.java:73)
> at org.jboss.weld.Container.instance(Container.java:54)
> at org.jboss.weld.bean.proxy.ContextBeanInstance.getInstance(ContextBeanInstance.java:67)
> at org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:79)
> at org.jboss.jsr299.tck.tests.context.jms.LoggerService$Proxy$_$$_WeldClientProxy.log(LoggerService$Proxy$_$$_WeldClientProxy.java)
> at org.jboss.jsr299.tck.tests.context.jms.AbstractMessageListener.onMessage(AbstractMessageListener.java:19)
> at org.hornetq.jms.client.JMSMessageListenerWrapper.onMessage(JMSMessageListenerWrapper.java:91) [hornetq-jms-2.2.7.Final.jar:]
> at org.hornetq.core.client.impl.ClientConsumerImpl.callOnMessage(ClientConsumerImpl.java:866) [hornetq-core-2.2.7.Final.jar:]
> at org.hornetq.core.client.impl.ClientConsumerImpl.access$100(ClientConsumerImpl.java:44) [hornetq-core-2.2.7.Final.jar:]
> at org.hornetq.core.client.impl.ClientConsumerImpl$Runner.run(ClientConsumerImpl.java:983) [hornetq-core-2.2.7.Final.jar:]
> at org.hornetq.utils.OrderedExecutorFactory$OrderedExecutor$1.run(OrderedExecutorFactory.java:100) [hornetq-core-2.2.7.Final.jar:]
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) [:1.6.0_22]
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) [:1.6.0_22]
> at java.lang.Thread.run(Thread.java:679) [:1.6.0_22]
> Do you know what's happening? Is this feature already implemented in weld/AS7.1 integration?
--
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 jboss-jira
mailing list