Return-Path: Delivered-To: apmail-geronimo-scm-archive@www.apache.org Received: (qmail 74387 invoked from network); 1 Nov 2010 16:09:10 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 1 Nov 2010 16:09:10 -0000 Received: (qmail 33139 invoked by uid 500); 1 Nov 2010 16:09:41 -0000 Delivered-To: apmail-geronimo-scm-archive@geronimo.apache.org Received: (qmail 33102 invoked by uid 500); 1 Nov 2010 16:09:41 -0000 Mailing-List: contact scm-help@geronimo.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: List-Post: Reply-To: dev@geronimo.apache.org List-Id: Delivered-To: mailing list scm@geronimo.apache.org Received: (qmail 33095 invoked by uid 99); 1 Nov 2010 16:09:41 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 01 Nov 2010 16:09:41 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 01 Nov 2010 16:09:39 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 888EF238897A; Mon, 1 Nov 2010 16:08:41 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1029727 - in /geronimo/components/txmanager/branches/geronimo-txmanager-parent-2.2: ./ geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/ Date: Mon, 01 Nov 2010 16:08:41 -0000 To: scm@geronimo.apache.org From: djencks@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20101101160841.888EF238897A@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: djencks Date: Mon Nov 1 16:08:41 2010 New Revision: 1029727 URL: http://svn.apache.org/viewvc?rev=1029727&view=rev Log: GERONIMO-5648 fix some errors in RollbackTask shown by osgi tx tests. Merge from trunk Modified: geronimo/components/txmanager/branches/geronimo-txmanager-parent-2.2/ (props changed) geronimo/components/txmanager/branches/geronimo-txmanager-parent-2.2/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/CommitTask.java geronimo/components/txmanager/branches/geronimo-txmanager-parent-2.2/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/RollbackTask.java Propchange: geronimo/components/txmanager/branches/geronimo-txmanager-parent-2.2/ ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Mon Nov 1 16:08:41 2010 @@ -1,2 +1,2 @@ /geronimo/components/txmanager/branches/geronimo-txmanager-parent-2.1.1:981270 -/geronimo/components/txmanager/trunk:900557,911974,912058,912297,912468,939929 +/geronimo/components/txmanager/trunk:900557,911974,912058,912297,912468,939929,1028958 Modified: geronimo/components/txmanager/branches/geronimo-txmanager-parent-2.2/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/CommitTask.java URL: http://svn.apache.org/viewvc/geronimo/components/txmanager/branches/geronimo-txmanager-parent-2.2/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/CommitTask.java?rev=1029727&r1=1029726&r2=1029727&view=diff ============================================================================== --- geronimo/components/txmanager/branches/geronimo-txmanager-parent-2.2/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/CommitTask.java (original) +++ geronimo/components/txmanager/branches/geronimo-txmanager-parent-2.2/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/CommitTask.java Mon Nov 1 16:08:41 2010 @@ -89,7 +89,7 @@ public class CommitTask implements Runna } else if (e.errorCode == XAException.XAER_RMFAIL) { //refresh the xa resource from the NamedXAResourceFactory if (manager.getCommitter() instanceof NamedXAResource) { - String xaResourceName = ((NamedXAResource)manager.getCommitter()).getName(); + String xaResourceName = manager.getResourceName(); NamedXAResourceFactory namedXAResourceFactory = txManager.getNamedXAResourceFactory(xaResourceName); if (namedXAResourceFactory != null) { try { Modified: geronimo/components/txmanager/branches/geronimo-txmanager-parent-2.2/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/RollbackTask.java URL: http://svn.apache.org/viewvc/geronimo/components/txmanager/branches/geronimo-txmanager-parent-2.2/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/RollbackTask.java?rev=1029727&r1=1029726&r2=1029727&view=diff ============================================================================== --- geronimo/components/txmanager/branches/geronimo-txmanager-parent-2.2/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/RollbackTask.java (original) +++ geronimo/components/txmanager/branches/geronimo-txmanager-parent-2.2/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/RollbackTask.java Mon Nov 1 16:08:41 2010 @@ -52,6 +52,7 @@ public class RollbackTask implements Run this.txManager = txManager; } + @Override public void run() { synchronized (this) { status = Status.STATUS_ROLLING_BACK; @@ -66,7 +67,10 @@ public class RollbackTask implements Run } catch (XAException e) { log.error("Unexpected exception committing " + manager.getCommitter() + "; continuing to commit other RMs", e); - if (e.errorCode == XAException.XA_HEURRB) { + if (e.errorCode >= XAException.XA_RBBASE && e.errorCode <= XAException.XA_RBEND || e.errorCode == XAException.XAER_NOTA) { + remove(index); + everRolledBack = true; + } else if (e.errorCode == XAException.XA_HEURRB) { remove(index); // let's not throw an exception as the transaction has been rolled back log.info("Transaction has been heuristically rolled back"); @@ -86,10 +90,10 @@ public class RollbackTask implements Run } else if (e.errorCode == XAException.XA_RETRY) { // do nothing, retry later index++; - } else if (e.errorCode == XAException.XAER_RMFAIL) { + } else if (e.errorCode == XAException.XAER_RMFAIL || e.errorCode == XAException.XAER_RMERR) { //refresh the xa resource from the NamedXAResourceFactory if (manager.getCommitter() instanceof NamedXAResource) { - String xaResourceName = ((NamedXAResource)manager.getCommitter()).getName(); + String xaResourceName = manager.getResourceName(); NamedXAResourceFactory namedXAResourceFactory = txManager.getNamedXAResourceFactory(xaResourceName); if (namedXAResourceFactory != null) { try { @@ -106,15 +110,10 @@ public class RollbackTask implements Run index++; } } else { - //no hope + //no hope. Since we don't record the exception if we do manage to retry stuff later, presumably we shouldn't now, either. remove(index); - cause = e; } } else { - //at least these error codes: - // XAException.XA_RMERR - // XAException.XA_RBROLLBACK - // XAException.XAER_NOTA //nothing we can do about it remove(index); cause = e;