-
Bug
-
Resolution: Won't Do
-
Blocker
-
None
-
JBoss A-MQ 6.2, JBoss A-MQ 6.2.1
-
None
-
None
TCK tests with A-MQ 6.2.0 and A-MQ 6.2.1 with EAP 7.0.0.ER4 (issue is valid for both A-MQ versions).
Resource adapters used:
A-MQ 6.2.0 - activemq-rar-5.11.0.rar
A-MQ 6.2.1 - activemq-rar-5.11.0.redhat-621084.rar
When MDB is using bean managed transaction (UserTransaction) and calls getRolledBack or setRolledBack on MessageDrivenContext or calls begin() twice on the transaction, incorrect exception type is thrown.
Exception thrown in all cases:
\u001b[0m\u001b[0m08:50:49,878 INFO [stdout] (Thread-63) 01-18-2016 08:50:49: SVR-ERROR: javax.jms.IllegalStateException: The Session is closed \u001b[0m\u001b[0m08:50:49,878 INFO [stdout] (Thread-63) at org.apache.activemq.ra.ManagedSessionProxy.getSession(ManagedSessionProxy.java:99) \u001b[0m\u001b[0m08:50:49,879 INFO [stdout] (Thread-63) at org.apache.activemq.ra.ManagedSessionProxy.createSender(ManagedSessionProxy.java:370) \u001b[0m\u001b[0m08:50:49,880 INFO [stdout] (Thread-63) at org.apache.activemq.ActiveMQQueueSession.createSender(ActiveMQQueueSession.java:242) \u001b[0m\u001b[0m08:50:49,880 INFO [stdout] (Thread-63) at com.sun.ts.tests.jms.common.JmsUtil.sendTestResults(JmsUtil.java:215) \u001b[0m\u001b[0m08:50:49,880 INFO [stdout] (Thread-63) at com.sun.ts.tests.jms.ee.mdb.mdb_exceptQ.MsgBean.runGetRollbackOnlyBMT(MsgBean.java:120) \u001b[0m\u001b[0m08:50:49,880 INFO [stdout] (Thread-63) at com.sun.ts.tests.jms.ee.mdb.mdb_exceptQ.MsgBean.runTests(MsgBean.java:43) \u001b[0m\u001b[0m08:50:49,881 INFO [stdout] (Thread-63) at com.sun.ts.tests.jms.common.ParentMsgBeanNoTx.onMessage(ParentMsgBeanNoTx.java:122) \u001b[0m\u001b[0m08:50:49,881 INFO [stdout] (Thread-63) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) \u001b[0m\u001b[0m08:50:49,881 INFO [stdout] (Thread-63) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) \u001b[0m\u001b[0m08:50:49,881 INFO [stdout] (Thread-63) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) \u001b[0m\u001b[0m08:50:49,881 INFO [stdout] (Thread-63) at java.lang.reflect.Method.invoke(Method.java:497) \u001b[0m\u001b[0m08:50:49,881 INFO [stdout] (Thread-63) at org.jboss.as.ee.component.ManagedReferenceMethodInterceptor.processInvocation(ManagedReferenceMethodInterceptor.java:52) \u001b[0m\u001b[0m08:50:49,881 INFO [stdout] (Thread-63) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340) \u001b[0m\u001b[0m08:50:49,881 INFO [stdout] (Thread-63) at org.jboss.as.ejb3.component.invocationmetrics.ExecutionTimeInterceptor.processInvocation(ExecutionTimeInterceptor.java:43) \u001b[0m\u001b[0m08:50:49,882 INFO [stdout] (Thread-63) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340) \u001b[0m\u001b[0m08:50:49,882 INFO [stdout] (Thread-63) at org.jboss.as.ejb3.tx.EjbBMTInterceptor.handleInvocation(EjbBMTInterceptor.java:103) \u001b[0m\u001b[0m08:50:49,882 INFO [stdout] (Thread-63) at org.jboss.as.ejb3.tx.BMTInterceptor.processInvocation(BMTInterceptor.java:58) \u001b[0m\u001b[0m08:50:49,882 INFO [stdout] (Thread-63) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340) \u001b[0m\u001b[0m08:50:49,882 INFO [stdout] (Thread-63) at org.jboss.as.ee.concurrent.ConcurrentContextInterceptor.processInvocation(ConcurrentContextInterceptor.java:45) \u001b[0m\u001b[0m08:50:49,882 INFO [stdout] (Thread-63) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340) \u001b[0m\u001b[0m08:50:49,882 INFO [stdout] (Thread-63) at org.jboss.invocation.InitialInterceptor.processInvocation(InitialInterceptor.java:21) \u001b[0m\u001b[0m08:50:49,882 INFO [stdout] (Thread-63) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340) \u001b[0m\u001b[0m08:50:49,883 INFO [stdout] (Thread-63) at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61) \u001b[0m\u001b[0m08:50:49,883 INFO [stdout] (Thread-63) at org.jboss.as.ee.component.interceptors.ComponentDispatcherInterceptor.processInvocation(ComponentDispatcherInterceptor.java:52) \u001b[0m\u001b[0m08:50:49,883 INFO [stdout] (Thread-63) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340) \u001b[0m\u001b[0m08:50:49,883 INFO [stdout] (Thread-63) at org.jboss.as.ejb3.component.pool.PooledInstanceInterceptor.processInvocation(PooledInstanceInterceptor.java:51) \u001b[0m\u001b[0m08:50:49,883 INFO [stdout] (Thread-63) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340) \u001b[0m\u001b[0m08:50:49,883 INFO [stdout] (Thread-63) at org.jboss.as.ejb3.component.interceptors.CurrentInvocationContextInterceptor.processInvocation(CurrentInvocationContextInterceptor.java:41) \u001b[0m\u001b[0m08:50:49,883 INFO [stdout] (Thread-63) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340) \u001b[0m\u001b[0m08:50:49,883 INFO [stdout] (Thread-63) at org.jboss.as.ejb3.component.invocationmetrics.WaitTimeInterceptor.processInvocation(WaitTimeInterceptor.java:43) \u001b[0m\u001b[0m08:50:49,883 INFO [stdout] (Thread-63) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340) \u001b[0m\u001b[0m08:50:49,884 INFO [stdout] (Thread-63) at org.jboss.as.ejb3.security.SecurityContextInterceptor.processInvocation(SecurityContextInterceptor.java:100) \u001b[0m\u001b[0m08:50:49,884 INFO [stdout] (Thread-63) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340) \u001b[0m\u001b[0m08:50:49,884 INFO [stdout] (Thread-63) at org.jboss.as.ejb3.component.interceptors.ShutDownInterceptorFactory$1.processInvocation(ShutDownInterceptorFactory.java:64) \u001b[0m\u001b[0m08:50:49,884 INFO [stdout] (Thread-63) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340) \u001b[0m\u001b[0m08:50:49,884 INFO [stdout] (Thread-63) at org.jboss.as.ejb3.deployment.processors.EjbSuspendInterceptor.processInvocation(EjbSuspendInterceptor.java:53) \u001b[0m\u001b[0m08:50:49,884 INFO [stdout] (Thread-63) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340) \u001b[0m\u001b[0m08:50:49,884 INFO [stdout] (Thread-63) at org.jboss.as.ejb3.component.interceptors.LoggingInterceptor.processInvocation(LoggingInterceptor.java:66) \u001b[0m\u001b[0m08:50:49,884 INFO [stdout] (Thread-63) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340) \u001b[0m\u001b[0m08:50:49,885 INFO [stdout] (Thread-63) at org.jboss.as.ee.component.NamespaceContextInterceptor.processInvocation(NamespaceContextInterceptor.java:50) \u001b[0m\u001b[0m08:50:49,885 INFO [stdout] (Thread-63) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340) \u001b[0m\u001b[0m08:50:49,885 INFO [stdout] (Thread-63) at org.jboss.as.ejb3.component.interceptors.AdditionalSetupInterceptor.processInvocation(AdditionalSetupInterceptor.java:54) \u001b[0m\u001b[0m08:50:49,886 INFO [stdout] (Thread-63) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340) \u001b[0m\u001b[0m08:50:49,887 INFO [stdout] (Thread-63) at org.jboss.as.ejb3.component.messagedriven.MessageDrivenComponentDescription$5$1.processInvocation(MessageDrivenComponentDescription.java:239) \u001b[0m\u001b[0m08:50:49,887 INFO [stdout] (Thread-63) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340) \u001b[0m\u001b[0m08:50:49,887 INFO [stdout] (Thread-63) at org.jboss.invocation.ContextClassLoaderInterceptor.processInvocation(ContextClassLoaderInterceptor.java:64) \u001b[0m\u001b[0m08:50:49,887 INFO [stdout] (Thread-63) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340) \u001b[0m\u001b[0m08:50:49,887 INFO [stdout] (Thread-63) at org.jboss.invocation.InterceptorContext.run(InterceptorContext.java:356) \u001b[0m\u001b[0m08:50:49,887 INFO [stdout] (Thread-63) at org.wildfly.security.manager.WildFlySecurityManager.doChecked(WildFlySecurityManager.java:636) \u001b[0m\u001b[0m08:50:49,887 INFO [stdout] (Thread-63) at org.jboss.invocation.AccessCheckingInterceptor.processInvocation(AccessCheckingInterceptor.java:61) \u001b[0m\u001b[0m08:50:49,888 INFO [stdout] (Thread-63) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340) \u001b[0m\u001b[0m08:50:49,888 INFO [stdout] (Thread-63) at org.jboss.invocation.InterceptorContext.run(InterceptorContext.java:356) \u001b[0m\u001b[0m08:50:49,888 INFO [stdout] (Thread-63) at org.jboss.invocation.PrivilegedWithCombinerInterceptor.processInvocation(PrivilegedWithCombinerInterceptor.java:80) \u001b[0m\u001b[0m08:50:49,888 INFO [stdout] (Thread-63) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340) \u001b[0m\u001b[0m08:50:49,888 INFO [stdout] (Thread-63) at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61) \u001b[0m\u001b[0m08:50:49,888 INFO [stdout] (Thread-63) at org.jboss.as.ee.component.ViewService$View.invoke(ViewService.java:195) \u001b[0m\u001b[0m08:50:49,888 INFO [stdout] (Thread-63) at org.jboss.as.ee.component.ViewDescription$1.processInvocation(ViewDescription.java:185) \u001b[0m\u001b[0m08:50:49,888 INFO [stdout] (Thread-63) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340) \u001b[0m\u001b[0m08:50:49,889 INFO [stdout] (Thread-63) at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61) \u001b[0m\u001b[0m08:50:49,889 INFO [stdout] (Thread-63) at org.jboss.as.ee.component.ProxyInvocationHandler.invoke(ProxyInvocationHandler.java:73) \u001b[0m\u001b[0m08:50:49,889 INFO [stdout] (Thread-63) at com.sun.ts.tests.jms.ee.mdb.mdb_exceptQ.MsgBean$$$view2.onMessage(Unknown Source) \u001b[0m\u001b[0m08:50:49,889 INFO [stdout] (Thread-63) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) \u001b[0m\u001b[0m08:50:49,889 INFO [stdout] (Thread-63) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) \u001b[0m\u001b[0m08:50:49,889 INFO [stdout] (Thread-63) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) \u001b[0m\u001b[0m08:50:49,889 INFO [stdout] (Thread-63) at java.lang.reflect.Method.invoke(Method.java:497) \u001b[0m\u001b[0m08:50:49,889 INFO [stdout] (Thread-63) at org.jboss.as.ejb3.inflow.MessageEndpointInvocationHandler.doInvoke(MessageEndpointInvocationHandler.java:139) \u001b[0m\u001b[0m08:50:49,889 INFO [stdout] (Thread-63) at org.jboss.as.ejb3.inflow.AbstractInvocationHandler.invoke(AbstractInvocationHandler.java:73) \u001b[0m\u001b[0m08:50:49,890 INFO [stdout] (Thread-63) at com.sun.ts.tests.jms.ee.mdb.mdb_exceptQ.MsgBean$$$endpoint2.onMessage(Unknown Source) \u001b[0m\u001b[0m08:50:49,890 INFO [stdout] (Thread-63) at org.apache.activemq.ra.MessageEndpointProxy$MessageEndpointAlive.onMessage(MessageEndpointProxy.java:123) \u001b[0m\u001b[0m08:50:49,890 INFO [stdout] (Thread-63) at org.apache.activemq.ra.MessageEndpointProxy.onMessage(MessageEndpointProxy.java:64) \u001b[0m\u001b[0m08:50:49,890 INFO [stdout] (Thread-63) at org.apache.activemq.ActiveMQSession.run(ActiveMQSession.java:1038) \u001b[0m\u001b[0m08:50:49,890 INFO [stdout] (Thread-63) at org.apache.activemq.ra.ServerSessionImpl.run(ServerSessionImpl.java:169) \u001b[0m\u001b[0m08:50:49,890 INFO [stdout] (Thread-63) at org.jboss.jca.core.workmanager.WorkWrapper.run(WorkWrapper.java:223) \u001b[0m\u001b[0m08:50:49,890 INFO [stdout] (Thread-63) at org.jboss.threads.SimpleDirectExecutor.execute(SimpleDirectExecutor.java:33) \u001b[0m\u001b[0m08:50:49,890 INFO [stdout] (Thread-63) at org.jboss.threads.QueueExecutor.runTask(QueueExecutor.java:808) \u001b[0m\u001b[0m08:50:49,890 INFO [stdout] (Thread-63) at org.jboss.threads.QueueExecutor.access$100(QueueExecutor.java:45) \u001b[0m\u001b[0m08:50:49,891 INFO [stdout] (Thread-63) at org.jboss.threads.QueueExecutor$Worker.run(QueueExecutor.java:828) \u001b[0m\u001b[0m08:50:49,891 INFO [stdout] (Thread-63) at java.lang.Thread.run(Thread.java:745) \u001b[0m\u001b[0m08:50:49,891 INFO [stdout] (Thread-63) at org.jboss.threads.JBossThread.run(JBossThread.java:320)
Example of the test failing:
UserTransaction ut = mdc.getUserTransaction();
ut.begin()
if (mdc.getRollbackOnly()) {};
ut.rollback();
The code above throws javax.jms.IllegalStateException instead of expected java.lang.IllegalStateException
Alternative tests with same issue: calling mdb.setRollbackOnly(), calling ut.begin() twice
Affected tests from TCK module jms/ee/mdb:
[javatest.batch] FAILED........com/sun/ts/tests/jms/ee/mdb/mdb_exceptQ/MDBClient.java#Test1 [javatest.batch] FAILED........com/sun/ts/tests/jms/ee/mdb/mdb_exceptQ/MDBClient.java#Test15 [javatest.batch] FAILED........com/sun/ts/tests/jms/ee/mdb/mdb_exceptQ/MDBClient.java#Test2 [javatest.batch] FAILED........com/sun/ts/tests/jms/ee/mdb/mdb_exceptT/MDBClient.java#Test1 [javatest.batch] FAILED........com/sun/ts/tests/jms/ee/mdb/mdb_exceptT/MDBClient.java#Test13 [javatest.batch] FAILED........com/sun/ts/tests/jms/ee/mdb/mdb_exceptT/MDBClient.java#Test2
- clones
-
JBEAP-2854 A-MQ throws incorrect exception type when MDB uses bean managed transaction and the transaction is rolled back in TCK tests
- Closed
- is related to
-
AMQDOC-61 A-MQ RAR in EAP 7 needs tracking=false attribute in managed connection defs
- Resolved