[jboss-jira] [JBoss JIRA] (WFLY-2651) JBAS014160: Wrong tx on thread when calling async EJB method from async servlet

Scott Marlow (JIRA) issues at jboss.org
Fri Dec 13 14:38:33 EST 2013


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

Scott Marlow commented on WFLY-2651:
------------------------------------

If the WebServlet calls a synchronous bean instead (http://localhost:8080/async-testcase-1.0-SNAPSHOT/sync-counter) of an asynchronous bean, the TransactionRollbackSetupAction.checkTransactionStatus() does see the CMTTxInterceptor controlled transaction.  Call stack at checkTransactionStatus time is:
{quote}
at org.jboss.as.txn.deployment.TransactionRollbackSetupAction.checkTransactionStatus(TransactionRollbackSetupAction.java:113)
at org.jboss.as.txn.deployment.TransactionRollbackSetupAction.teardown(TransactionRollbackSetupAction.java:66)
at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$1$1.tearDown(UndertowDeploymentInfoService.java:307)
at io.undertow.servlet.core.CompositeThreadSetupAction$1.tearDown(CompositeThreadSetupAction.java:52)
at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:289)
at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:225)
at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:71)
at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:144)
at io.undertow.server.Connectors.executeRootHandler(Connectors.java:164)
at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:655)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:724)
{quote}

                
>  JBAS014160: Wrong tx on thread when calling async EJB method from async servlet 
> ---------------------------------------------------------------------------------
>
>                 Key: WFLY-2651
>                 URL: https://issues.jboss.org/browse/WFLY-2651
>             Project: WildFly
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>          Components: EJB, Web (Undertow)
>    Affects Versions: 8.0.0.Beta1
>         Environment: Fedora 19, OpenJDK 1.7.0
>            Reporter: Eldar Yusupov
>            Assignee: Scott Marlow
>             Fix For: 8.0.0.CR1
>
>         Attachments: async-testcase-1.0-SNAPSHOT.war
>
>
> When trying to execute asynchronous EJB bean from asynchronous servlet, the following exception is thrown (testcase is available at https://github.com/eyusupov/async-testcase/):
> 2013-12-13 00:42:03,489 ERROR [org.jboss.as.txn] (EJB default - 1) JBAS010152: APPLICATION ERROR: transaction still active in request with status 0
> 2013-12-13 00:42:03,494 ERROR [org.jboss.as.ejb3.invocation] (EJB default - 1) JBAS014134: EJB Invocation failed on component AsyncBean for method public void com.okasamastarr.web.AsyncBean.count(javax.servlet.AsyncContext) throws java.io.IOException: java.lang.IllegalStateException: JBAS014160: Wrong tx on thread: expected TransactionImple < ac, BasicAction: 0:ffffac1e0f02:-40b55bbb:52aa1f96:8 status: ActionStatus.ABORTED >, actual null
>     at org.jboss.as.ejb3.tx.CMTTxInterceptor.endTransaction(CMTTxInterceptor.java:85) [wildfly-ejb3-8.0.0.Beta1.jar:8.0.0.Beta1]
>     at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:277) [wildfly-ejb3-8.0.0.Beta1.jar:8.0.0.Beta1]
>     at org.jboss.as.ejb3.tx.CMTTxInterceptor.required(CMTTxInterceptor.java:340) [wildfly-ejb3-8.0.0.Beta1.jar:8.0.0.Beta1]
>     at org.jboss.as.ejb3.tx.CMTTxInterceptor.processInvocation(CMTTxInterceptor.java:239) [wildfly-ejb3-8.0.0.Beta1.jar:8.0.0.Beta1]
>     at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
>     at org.jboss.as.ejb3.component.interceptors.CurrentInvocationContextInterceptor.processInvocation(CurrentInvocationContextInterceptor.java:41) [wildfly-ejb3-8.0.0.Beta1.jar:8.0.0.Beta1]
>     at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
>     at org.jboss.as.ejb3.component.invocationmetrics.WaitTimeInterceptor.processInvocation(WaitTimeInterceptor.java:43) [wildfly-ejb3-8.0.0.Beta1.jar:8.0.0.Beta1]
>     at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
>     at org.jboss.as.ejb3.security.SecurityContextInterceptor.processInvocation(SecurityContextInterceptor.java:95) [wildfly-ejb3-8.0.0.Beta1.jar:8.0.0.Beta1]
>     at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
>     at org.jboss.as.ejb3.component.interceptors.ShutDownInterceptorFactory$1.processInvocation(ShutDownInterceptorFactory.java:64) [wildfly-ejb3-8.0.0.Beta1.jar:8.0.0.Beta1]
>     at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
>     at org.jboss.as.ejb3.component.interceptors.LoggingInterceptor.processInvocation(LoggingInterceptor.java:59) [wildfly-ejb3-8.0.0.Beta1.jar:8.0.0.Beta1]
>     at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
>     at org.jboss.as.ee.component.NamespaceContextInterceptor.processInvocation(NamespaceContextInterceptor.java:50)
>     at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
>     at org.jboss.as.ejb3.component.interceptors.AdditionalSetupInterceptor.processInvocation(AdditionalSetupInterceptor.java:55) [wildfly-ejb3-8.0.0.Beta1.jar:8.0.0.Beta1]
>     at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
>     at org.jboss.invocation.ContextClassLoaderInterceptor.processInvocation(ContextClassLoaderInterceptor.java:64)
>     at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
>     at org.jboss.invocation.InterceptorContext.run(InterceptorContext.java:325)
>     at org.wildfly.security.manager.WildFlySecurityManager.doChecked(WildFlySecurityManager.java:437)
>     at org.jboss.invocation.AccessCheckingInterceptor.processInvocation(AccessCheckingInterceptor.java:61)
>     at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
>     at org.jboss.invocation.InterceptorContext.run(InterceptorContext.java:325)
>     at org.jboss.invocation.PrivilegedWithCombinerInterceptor.processInvocation(PrivilegedWithCombinerInterceptor.java:80)
>     at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
>     at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)
>     at org.jboss.as.ee.component.ViewService$View.invoke(ViewService.java:165)
>     at org.jboss.as.ee.component.ViewDescription$1.processInvocation(ViewDescription.java:182)
>     at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
>     at org.jboss.as.ejb3.component.interceptors.LogDiagnosticContextRecoveryInterceptor.processInvocation(LogDiagnosticContextRecoveryInterceptor.java:79) [wildfly-ejb3-8.0.0.Beta1.jar:8.0.0.Beta1]
>     at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
>     at org.jboss.as.ejb3.component.interceptors.AsyncFutureInterceptorFactory$1$1.runInvocation(AsyncFutureInterceptorFactory.java:87) [wildfly-ejb3-8.0.0.Beta1.jar:8.0.0.Beta1]
>     at org.jboss.as.ejb3.component.interceptors.AsyncInvocationTask.run(AsyncInvocationTask.java:73) [wildfly-ejb3-8.0.0.Beta1.jar:8.0.0.Beta1]
>     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_25]
>     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_25]
>     at java.lang.Thread.run(Thread.java:724) [rt.jar:1.7.0_25]
>     at org.jboss.threads.JBossThread.run(JBossThread.java:122)

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


More information about the jboss-jira mailing list