[
https://issues.jboss.org/browse/JBTM-1950?page=com.atlassian.jira.plugin....
]
Michael Musgrove commented on JBTM-1950:
----------------------------------------
The transaction cleanup code is expecting certain information to be stored about the
participants. There is a scenario where the txn id associated with a participant is null.
This can happen if the participant moves to a new location and if the beforeCompletion
transaction synchronizaton does not run which happens if the transaction times out.
The fix is to ensure that the method Coordinator.replaceParticipant method updates the
missing value.
I have added the test SpecTest.testRecoveryUrlIsRemovedAfterCompletion to trigger the
condition under which the bug manifests.
NullPointerException during after completion in REST-AT coordinator
-------------------------------------------------------------------
Key: JBTM-1950
URL:
https://issues.jboss.org/browse/JBTM-1950
Project: JBoss Transaction Manager
Issue Type: Bug
Security Level: Public(Everyone can see)
Components: REST
Reporter: Gytis Trikleris
Assignee: Michael Musgrove
Priority: Critical
Fix For: 5.0.0.Final
http://172.17.131.2/view/Narayana+BlackTie/job/narayana/TESTS=MAIN,jdk=jd...
{code}
[0m[31m09:35:11,468 ERROR [io.undertow.request] (default task-9) Servlet request failed
HttpServerExchange{ PUT
/rest-at-coordinator/tx/transaction-manager/0_ffffac118324_2d1b88f2_524694b3_f/terminator}:
org.jboss.resteasy.spi.UnhandledException: java.lang.NullPointerException
at
org.jboss.resteasy.core.ExceptionHandler.handleApplicationException(ExceptionHandler.java:76)
[resteasy-jaxrs-3.0.4.Final.jar:]
at org.jboss.resteasy.core.ExceptionHandler.handleException(ExceptionHandler.java:212)
[resteasy-jaxrs-3.0.4.Final.jar:]
at
org.jboss.resteasy.core.SynchronousDispatcher.writeException(SynchronousDispatcher.java:149)
[resteasy-jaxrs-3.0.4.Final.jar:]
at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:372)
[resteasy-jaxrs-3.0.4.Final.jar:]
at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:179)
[resteasy-jaxrs-3.0.4.Final.jar:]
at
org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:220)
[resteasy-jaxrs-3.0.4.Final.jar:]
at
org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:56)
[resteasy-jaxrs-3.0.4.Final.jar:]
at
org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:51)
[resteasy-jaxrs-3.0.4.Final.jar:]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
[jboss-servlet-api_3.1_spec-1.0.0.Beta1.jar:1.0.0.Beta1]
at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:87)
[undertow-servlet-1.0.0.Beta13.jar:1.0.0.Beta13]
at
io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:59)
[undertow-servlet-1.0.0.Beta13.jar:1.0.0.Beta13]
at
io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
[undertow-servlet-1.0.0.Beta13.jar:1.0.0.Beta13]
at
io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:113)
[undertow-servlet-1.0.0.Beta13.jar:1.0.0.Beta13]
at
io.undertow.security.handlers.AuthenticationCallHandler.handleRequest(AuthenticationCallHandler.java:52)
[undertow-core-1.0.0.Beta13.jar:1.0.0.Beta13]
at
io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:45)
[undertow-core-1.0.0.Beta13.jar:1.0.0.Beta13]
at
io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:65)
[undertow-servlet-1.0.0.Beta13.jar:1.0.0.Beta13]
at
io.undertow.security.handlers.SecurityInitialHandler.handleRequest(SecurityInitialHandler.java:70)
[undertow-core-1.0.0.Beta13.jar:1.0.0.Beta13]
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25)
[undertow-core-1.0.0.Beta13.jar:1.0.0.Beta13]
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25)
[undertow-core-1.0.0.Beta13.jar:1.0.0.Beta13]
at
io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:209)
[undertow-servlet-1.0.0.Beta13.jar:1.0.0.Beta13]
at
io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:196)
[undertow-servlet-1.0.0.Beta13.jar:1.0.0.Beta13]
at
io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:69)
[undertow-servlet-1.0.0.Beta13.jar:1.0.0.Beta13]
at
io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:130)
[undertow-servlet-1.0.0.Beta13.jar:1.0.0.Beta13]
at io.undertow.server.HttpHandlers.executeRootHandler(HttpHandlers.java:36)
[undertow-core-1.0.0.Beta13.jar:1.0.0.Beta13]
at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:614)
[undertow-core-1.0.0.Beta13.jar:1.0.0.Beta13]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
[rt.jar:1.7.0_17]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
[rt.jar:1.7.0_17]
at java.lang.Thread.run(Thread.java:722) [rt.jar:1.7.0_17]
Caused by: java.lang.NullPointerException
at org.jboss.jbossts.star.service.Coordinator.removeTxState(Coordinator.java:483)
[restat-api-5.0.0.M5-SNAPSHOT.jar:]
at org.jboss.jbossts.star.resource.Transaction.afterCompletion(Transaction.java:326)
[restat-api-5.0.0.M5-SNAPSHOT.jar:]
at org.jboss.jbossts.star.resource.Transaction.afterCompletion(Transaction.java:305)
[restat-api-5.0.0.M5-SNAPSHOT.jar:]
at
com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.cancel(TwoPhaseCoordinator.java:118)
[narayana-jts-jacorb-5.0.0.M5-SNAPSHOT.jar:5.0.0.M5-SNAPSHOT (revision: 1aeb9)]
at com.arjuna.ats.arjuna.AtomicAction.abort(AtomicAction.java:186)
[narayana-jts-jacorb-5.0.0.M5-SNAPSHOT.jar:5.0.0.M5-SNAPSHOT (revision: 1aeb9)]
at org.jboss.jbossts.star.service.Coordinator.terminateTransaction(Coordinator.java:438)
[restat-api-5.0.0.M5-SNAPSHOT.jar:]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0_17]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
[rt.jar:1.7.0_17]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[rt.jar:1.7.0_17]
at java.lang.reflect.Method.invoke(Method.java:601) [rt.jar:1.7.0_17]
at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:137)
[resteasy-jaxrs-3.0.4.Final.jar:]
at
org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:280)
[resteasy-jaxrs-3.0.4.Final.jar:]
at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:234)
[resteasy-jaxrs-3.0.4.Final.jar:]
at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:221)
[resteasy-jaxrs-3.0.4.Final.jar:]
at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:356)
[resteasy-jaxrs-3.0.4.Final.jar:]
... 24 more
{code}
--
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