Eric Shu created GEODE-4142:
-------------------------------

             Summary: When processing the beforeCompletion message, transaction 
should check if the transaction has been completed already
                 Key: GEODE-4142
                 URL: https://issues.apache.org/jira/browse/GEODE-4142
             Project: Geode
          Issue Type: Bug
          Components: transactions
            Reporter: Eric Shu


The following NPE could occur if the JTA has been committed but client 
connection was lost. The client retries the afterCompletion on another node. 
Needs to check if the JTA has been completed/committed already.
{noformat}
java.lang.NullPointerException
        at 
org.apache.geode.internal.cache.JtaBeforeCompletionMessage.operateOnTx(JtaBeforeCompletionMessage.java:66)
        at org.apache.geode.internal.cache.TXMessage.process(TXMessage.java:88)
        at 
org.apache.geode.distributed.internal.DistributionMessage.scheduleAction(DistributionMessage.java:374)
        at 
org.apache.geode.distributed.internal.DistributionMessage.schedule(DistributionMessage.java:432)
        at 
org.apache.geode.distributed.internal.DistributionManager.scheduleIncomingMessage(DistributionManager.java:3554)
        at 
org.apache.geode.distributed.internal.DistributionManager.handleIncomingDMsg(DistributionManager.java:3188)
        at 
org.apache.geode.distributed.internal.DistributionManager$MyListener.messageReceived(DistributionManager.java:4363)
        at 
org.apache.geode.distributed.internal.membership.gms.mgr.GMSMembershipManager.dispatchMessage(GMSMembershipManager.java:1127)
        at 
org.apache.geode.distributed.internal.membership.gms.mgr.GMSMembershipManager.handleOrDeferMessage(GMSMembershipManager.java:1045)
        at 
org.apache.geode.distributed.internal.membership.gms.mgr.GMSMembershipManager$MyDCReceiver.messageReceived(GMSMembershipManager.java:408)
        at 
org.apache.geode.distributed.internal.direct.DirectChannel.receive(DirectChannel.java:715)
        at 
org.apache.geode.internal.tcp.TCPConduit.messageReceived(TCPConduit.java:875)
        at 
org.apache.geode.internal.tcp.Connection.dispatchMessage(Connection.java:3967)
        at 
org.apache.geode.internal.tcp.Connection.processNIOBuffer(Connection.java:3553)
        at 
org.apache.geode.internal.tcp.Connection.runNioReader(Connection.java:1829)
        at org.apache.geode.internal.tcp.Connection.run(Connection.java:1690)
        at java.lang.Thread.run(Thread.java:745)
{noformat}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to