[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