Dionysis Stavropoulos created IGNITE-10334:
----------------------------------------------

             Summary: XAException not causing a rollback exception to propagate 
to application server
                 Key: IGNITE-10334
                 URL: https://issues.apache.org/jira/browse/IGNITE-10334
             Project: Ignite
          Issue Type: Bug
          Components: cache, cassandra
    Affects Versions: 2.6, 2.5, 2.4, 2.3
         Environment: Thorntail: 2.2.0.Final

Apache Ignite 2.6

Cassandra driver 3.0.0
            Reporter: Dionysis Stavropoulos
         Attachments: ignite-config.xml, log.txt

When trying to put a null value in the POJO key of a cached object, although 
theĀ error that is in the attached log occurs the exception is not propagated to 
the application server (thorntail) and transaction's state is marked as 
committed.



We can see that inĀ 
org.apache.ignite.internal.processors.cache.jta.CacheJtaResource.java - line 
164, if an error occur in the commit() method an XAException is 
thrown(correctly) but with errorCode=0 (which as we understand means that the 
transaction was committed and that's why no rollback is propagated to the 
transaction manager).

See commit method below:

@Override public void commit(Xid xid, boolean onePhase) throws XAException {
 assert this.xid.equals(xid);

if (log.isDebugEnabled())
 log.debug("XA resource commit(...) [xid=" + xid + ", onePhase=" + onePhase + 
"]");

try {
 ctx.cache().context().commitTxAsync(cacheTx).get();<<< if error occur
 }
 catch (IgniteCheckedException e) {
 throwException("Failed to commit cache transaction: " + e.getMessage(), e);
 }
 }



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to