[seam-issues] [JBoss JIRA] Commented: (SEAMJMS-16) Event to JMS to Event mapping behavior

John Ament (JIRA) jira-events at lists.jboss.org
Thu Feb 24 07:16:04 EST 2011


    [ https://issues.jboss.org/browse/SEAMJMS-16?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12584383#comment-12584383 ] 

John Ament commented on SEAMJMS-16:
-----------------------------------

Realized last night (with help from Stuart Douglas) that this issue (with TCCL) was being cauesd by hornetq sending messages outside of the application.  By passing in the context class loader from another bean, we can set the class loader within the on message method, then set it back in a finally block.  This allows the body of the on message to be executed within the app's class loader, fixing any issues with bean resolution.

> Event to JMS to Event mapping behavior
> --------------------------------------
>
>                 Key: SEAMJMS-16
>                 URL: https://issues.jboss.org/browse/SEAMJMS-16
>             Project: Seam JMS
>          Issue Type: Bug
>            Reporter: John Ament
>
> While working on seam jms, I've noted the following behavior.
> java.lang.IllegalStateException: Singleton not set for BaseClassLoader at 3479404a{vfs:///apps/jboss/jboss-6.0.0.Final/server/all/conf/jboss-service.xml}
> 	at org.jboss.weld.integration.provider.JBossSingletonProvider$EarSingleton.get(JBossSingletonProvider.java:59) [:6.0.0.Final]
> 	at org.jboss.weld.Container.instance(Container.java:58) [:6.0.0.Final]
> 	at org.jboss.weld.resolution.ResolvableBuilder.checkQualifier(ResolvableBuilder.java:209) [:6.0.0.Final]
> 	at org.jboss.weld.resolution.ResolvableBuilder.addQualifier(ResolvableBuilder.java:174) [:6.0.0.Final]
> 	at org.jboss.weld.resolution.ResolvableBuilder.addQualifierIfAbsent(ResolvableBuilder.java:184) [:6.0.0.Final]
> 	at org.jboss.weld.manager.BeanManagerImpl.resolveObserverMethods(BeanManagerImpl.java:464) [:6.0.0.Final]
> 	at org.jboss.weld.manager.BeanManagerImpl.fireEvent(BeanManagerImpl.java:604) [:6.0.0.Final]
> 	at org.jboss.weld.manager.BeanManagerImpl.fireEvent(BeanManagerImpl.java:598) [:6.0.0.Final]
> 	at org.jboss.seam.jms.bridge.IngressMessageListener.onMessage(IngressMessageListener.java:45)
> 	at org.hornetq.jms.client.JMSMessageListenerWrapper.onMessage(JMSMessageListenerWrapper.java:91) [:6.0.0.Final]
> 	at org.hornetq.core.client.impl.ClientConsumerImpl.callOnMessage(ClientConsumerImpl.java:822) [:6.0.0.Final]
> 	at org.hornetq.core.client.impl.ClientConsumerImpl.access$100(ClientConsumerImpl.java:46) [:6.0.0.Final]
> 	at org.hornetq.core.client.impl.ClientConsumerImpl$Runner.run(ClientConsumerImpl.java:940) [:6.0.0.Final]
> 	at org.hornetq.utils.OrderedExecutorFactory$OrderedExecutor$1.run(OrderedExecutorFactory.java:100) [:6.0.0.Final]
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [:1.6.0_22]
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [:1.6.0_22]
> 	at java.lang.Thread.run(Thread.java:662) [:1.6.0_22]
> This exception occurs when trying to fire an event with the contents of a JMS message.  The message listener in this case is instantiated from the portable extension and receives the bean manager as an argument in the constructor.  I am able to get as far as reading the data from JMS, but when firing the second event the above exception occurs.  I'm not certain that this is a Weld problem, but it seem slike a good place to start based on the packages shown.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira


More information about the seam-issues mailing list