[
https://jira.jboss.org/browse/JBESB-3201?page=com.atlassian.jira.plugin.s...
]
Kevin Conner commented on JBESB-3201:
-------------------------------------
This has raised a number of issues and will be changed to a blocker.
- Reuse of the XASessions are not tracked correctly, leading to the possibility that the
sessions can be returned to the pool more than once and potentially cause conflicts from
different threads.
- The pool is tracking the XA sessions using Session.SESSION_TRANSACTED but this is a
valid acknowledge mode which is unrelated to the transactional context.
- The message producers and consumers should protect against use after a session has been
returned to the pool.
javax.jms.IllegalStateException thrown when invoking proxied service
with SyncServiceInvoker
--------------------------------------------------------------------------------------------
Key: JBESB-3201
URL:
https://jira.jboss.org/browse/JBESB-3201
Project: JBoss ESB
Issue Type: Bug
Security Level: Public(Everyone can see)
Components: Rosetta
Affects Versions: 4.7
Reporter: Boris Belovic
Assignee: Magesh Bojan
Fix For: 4.9 CP1
Attachments: ssi.tar.bz2
java.lang.reflect.UndeclaredThrowableException (with javax.jms.IllegalStateException as
cause) was thrown when invoking service with SyncServiceInvoker action. SyncServiceInvoker
action was configured with suspendTransaction property set to true.
The exception happens when service C is called from service A, both services have
transacted attribute set to true in their jms-listener configuration. The exception
disappears when transacted attribute is removed (commented out) from service C's
jms-listener configuration.
The exception stacktrace follows:
java.lang.reflect.UndeclaredThrowableException
at $Proxy246.getXAResource(Unknown Source)
at
org.jboss.internal.soa.esb.rosetta.pooling.JmsXASession.associate(JmsXASession.java:172)
at
org.jboss.internal.soa.esb.rosetta.pooling.JmsXASession$AssociationHandler.invoke(JmsXASession.java:244)
at $Proxy243.close(Unknown Source)
at sun.reflect.GeneratedMethodAccessor511.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
org.jboss.internal.soa.esb.rosetta.pooling.JmsSession$ExceptionHandler.invoke(JmsSession.java:479)
at $Proxy243.close(Unknown Source)
at org.jboss.internal.soa.esb.couriers.JmsCourier.cleanup(JmsCourier.java:115)
at org.jboss.soa.esb.couriers.CourierUtil.cleanCourier(CourierUtil.java:242)
at
org.jboss.internal.soa.esb.couriers.TwoWayCourierImpl.cleanup(TwoWayCourierImpl.java:237)
at org.jboss.soa.esb.couriers.CourierUtil.cleanCourier(CourierUtil.java:242)
at
org.jboss.soa.esb.listeners.message.MessageAwareListener.cleanCourier(MessageAwareListener.java:507)
at
org.jboss.soa.esb.listeners.message.MessageAwareListener.waitForEventAndProcess(MessageAwareListener.java:344)
at
org.jboss.soa.esb.listeners.message.MessageAwareListener.doRun(MessageAwareListener.java:253)
at
org.jboss.soa.esb.listeners.lifecycle.AbstractThreadedManagedLifecycle.run(AbstractThreadedManagedLifecycle.java:115)
at java.lang.Thread.run(Thread.java:619)
Caused by: javax.jms.IllegalStateException: The object is closed
at org.jboss.jms.client.container.ClosedInterceptor.invoke(ClosedInterceptor.java:157)
at org.jboss.aop.advice.PerInstanceInterceptor.invoke(PerInstanceInterceptor.java:86)
at
org.jboss.jms.client.delegate.ClientSessionDelegate$getXAResource_5045584642641131496.invokeNext(ClientSessionDelegate$getXAResource_5045584642641131496.java)
at
org.jboss.jms.client.delegate.ClientSessionDelegate.getXAResource(ClientSessionDelegate.java)
at org.jboss.jms.client.JBossSession.getXAResource(JBossSession.java:389)
at sun.reflect.GeneratedMethodAccessor516.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
org.jboss.internal.soa.esb.rosetta.pooling.JmsSession$ExceptionHandler.invoke(JmsSession.java:479)
Standalone example for reproducing is attached, the archive with example also contains
log from server.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
https://jira.jboss.org/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira