[
https://issues.jboss.org/browse/SEAMJMS-16?page=com.atlassian.jira.plugin...
]
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@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