[jboss-svn-commits] JBL Code SVN: r26812 - in labs/jbosstm/trunk: ArjunaJTS/jtax/classes/com/arjuna/ats/internal/jta/transaction/jts/jca and 1 other directory.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Wed Jun 3 12:00:22 EDT 2009
Author: jhalliday
Date: 2009-06-03 12:00:21 -0400 (Wed, 03 Jun 2009)
New Revision: 26812
Removed:
labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/transaction/arjunacore/jca/CleanupSynchronization.java
Modified:
labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/transaction/arjunacore/jca/TransactionImporterImple.java
labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/transaction/arjunacore/jca/XATerminatorImple.java
labs/jbosstm/trunk/ArjunaJTS/jtax/classes/com/arjuna/ats/internal/jta/transaction/jts/jca/TransactionImporterImple.java
labs/jbosstm/trunk/ArjunaJTS/jtax/classes/com/arjuna/ats/internal/jta/transaction/jts/jca/XATerminatorImple.java
Log:
Revert the r26806 subordinate tx importer cleanup changes - design change means modification no longer required. JBTM-560
Deleted: labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/transaction/arjunacore/jca/CleanupSynchronization.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/transaction/arjunacore/jca/CleanupSynchronization.java 2009-06-03 14:44:19 UTC (rev 26811)
+++ labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/transaction/arjunacore/jca/CleanupSynchronization.java 2009-06-03 16:00:21 UTC (rev 26812)
@@ -1,63 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, Red Hat Middleware LLC, and individual contributors
- * as indicated by the @author tags.
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- * You should have received a copy of the GNU Lesser General Public License,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- *
- * (C) 2005-2006,
- * @author JBoss Inc.
- */
-/*
- * Copyright (C) 2005,
- *
- * Arjuna Technologies Ltd,
- * Newcastle upon Tyne,
- * Tyne and Wear,
- * UK.
- *
- * $Id: WorkSynchronization.java 2342 2006-03-30 13:06:17Z $
- */
-
-package com.arjuna.ats.internal.jta.transaction.arjunacore.jca;
-
-import javax.transaction.xa.Xid;
-
-public class CleanupSynchronization implements
- javax.transaction.Synchronization
-{
-
- public CleanupSynchronization (Xid current)
- {
- _xid = current;
- }
-
- public void beforeCompletion ()
- {
- // null-op.
- }
-
- public void afterCompletion (int status)
- {
- try
- {
- SubordinationManager.getTransactionImporter().removeImportedTransaction(_xid);
- }
- catch (final Exception ex)
- {
- ex.printStackTrace();
- }
- }
-
- private Xid _xid;
-}
Modified: labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/transaction/arjunacore/jca/TransactionImporterImple.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/transaction/arjunacore/jca/TransactionImporterImple.java 2009-06-03 14:44:19 UTC (rev 26811)
+++ labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/transaction/arjunacore/jca/TransactionImporterImple.java 2009-06-03 16:00:21 UTC (rev 26812)
@@ -34,8 +34,6 @@
import java.util.concurrent.ConcurrentHashMap;
import javax.transaction.xa.*;
-import javax.transaction.RollbackException;
-import javax.transaction.SystemException;
import javax.transaction.Transaction;
import com.arjuna.ats.arjuna.common.Uid;
@@ -98,23 +96,6 @@
_transactions.put(new XidImple(xid), imported);
}
- /*
- * Register the cleanup synchronization immediately.
- */
-
- try
- {
- imported.registerSynchronization(new CleanupSynchronization(xid));
- }
- catch (final SystemException ex)
- {
- throw new XAException(XAException.XAER_RMERR);
- }
- catch (final RollbackException ex)
- {
- throw new XAException(XAException.XA_RBROLLBACK);
- }
-
return imported;
}
Modified: labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/transaction/arjunacore/jca/XATerminatorImple.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/transaction/arjunacore/jca/XATerminatorImple.java 2009-06-03 14:44:19 UTC (rev 26811)
+++ labs/jbosstm/trunk/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/transaction/arjunacore/jca/XATerminatorImple.java 2009-06-03 16:00:21 UTC (rev 26812)
@@ -84,18 +84,31 @@
tx.doOnePhaseCommit();
else
tx.doCommit();
+
+ SubordinationManager.getTransactionImporter()
+ .removeImportedTransaction(xid);
}
else
throw new XAException(XAException.XA_RETRY);
}
catch (RollbackException e)
{
+ SubordinationManager.getTransactionImporter()
+ .removeImportedTransaction(xid);
XAException xaException = new XAException(XAException.XA_RBROLLBACK);
xaException.initCause(e);
throw xaException;
}
catch (XAException ex)
{
+ // resource hasn't had a chance to recover yet
+
+ if (ex.errorCode != XAException.XA_RETRY)
+ {
+ SubordinationManager.getTransactionImporter()
+ .removeImportedTransaction(xid);
+ }
+
throw ex;
}
catch (HeuristicRollbackException ex)
@@ -118,12 +131,18 @@
}
catch (final IllegalStateException ex)
{
+ SubordinationManager.getTransactionImporter()
+ .removeImportedTransaction(xid);
+
XAException xaException = new XAException(XAException.XAER_NOTA);
xaException.initCause(ex);
throw xaException;
}
catch (SystemException ex)
{
+ SubordinationManager.getTransactionImporter()
+ .removeImportedTransaction(xid);
+
XAException xaException = new XAException(XAException.XAER_RMERR);
xaException.initCause(ex);
throw xaException;
@@ -144,7 +163,8 @@
{
try
{
- SubordinateTransaction tx = SubordinationManager.getTransactionImporter().getImportedTransaction(xid);
+ SubordinateTransaction tx = SubordinationManager
+ .getTransactionImporter().getImportedTransaction(xid);
if (tx == null)
throw new XAException(XAException.XAER_INVAL);
@@ -157,6 +177,11 @@
xaException.initCause(ex);
throw xaException;
}
+ finally
+ {
+ SubordinationManager.getTransactionImporter()
+ .removeImportedTransaction(xid);
+ }
}
/**
@@ -185,6 +210,8 @@
switch (tx.doPrepare())
{
case TwoPhaseOutcome.PREPARE_READONLY:
+ SubordinationManager.getTransactionImporter()
+ .removeImportedTransaction(xid);
return XAResource.XA_RDONLY;
case TwoPhaseOutcome.PREPARE_NOTOK:
// the JCA API spec limits what we can do in terms of reporting
@@ -219,6 +246,8 @@
xaExceptionCode = XAException.XAER_RMERR;
}
+ SubordinationManager.getTransactionImporter()
+ .removeImportedTransaction(xid);
XAException xaException = new XAException(xaExceptionCode);
if (initCause != null)
{
@@ -377,12 +406,23 @@
if (tx.activated())
{
tx.doRollback();
+
+ SubordinationManager.getTransactionImporter()
+ .removeImportedTransaction(xid);
}
else
throw new XAException(XAException.XA_RETRY);
}
catch (XAException ex)
{
+ // resource hasn't had a chance to recover yet
+
+ if (ex.errorCode != XAException.XA_RETRY)
+ {
+ SubordinationManager.getTransactionImporter()
+ .removeImportedTransaction(xid);
+ }
+
throw ex;
}
catch (final HeuristicRollbackException ex)
@@ -405,12 +445,18 @@
}
catch (final IllegalStateException ex)
{
+ SubordinationManager.getTransactionImporter()
+ .removeImportedTransaction(xid);
+
XAException xaException = new XAException(XAException.XAER_NOTA);
xaException.initCause(ex);
throw xaException;
}
catch (SystemException ex)
{
+ SubordinationManager.getTransactionImporter()
+ .removeImportedTransaction(xid);
+
throw new XAException(XAException.XAER_RMERR);
}
}
Modified: labs/jbosstm/trunk/ArjunaJTS/jtax/classes/com/arjuna/ats/internal/jta/transaction/jts/jca/TransactionImporterImple.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jtax/classes/com/arjuna/ats/internal/jta/transaction/jts/jca/TransactionImporterImple.java 2009-06-03 14:44:19 UTC (rev 26811)
+++ labs/jbosstm/trunk/ArjunaJTS/jtax/classes/com/arjuna/ats/internal/jta/transaction/jts/jca/TransactionImporterImple.java 2009-06-03 16:00:21 UTC (rev 26812)
@@ -34,12 +34,10 @@
import java.util.concurrent.ConcurrentHashMap;
import javax.transaction.xa.*;
-import javax.transaction.RollbackException;
-import javax.transaction.SystemException;
+import javax.transaction.Transaction;
import com.arjuna.ats.arjuna.common.Uid;
import com.arjuna.ats.internal.jta.transaction.jts.subordinate.jca.TransactionImple;
-import com.arjuna.ats.internal.jta.transaction.arjunacore.jca.CleanupSynchronization;
import com.arjuna.ats.internal.jta.transaction.arjunacore.jca.TransactionImporter;
import com.arjuna.ats.internal.jta.transaction.arjunacore.jca.SubordinateTransaction;
import com.arjuna.ats.jta.xa.XidImple;
@@ -94,23 +92,6 @@
_transactions.put(new XidImple(xid), imported);
}
- /*
- * Register the cleanup synchronization immediately.
- */
-
- try
- {
- imported.registerSynchronization(new CleanupSynchronization(xid));
- }
- catch (final SystemException ex)
- {
- throw new XAException(XAException.XAER_RMERR);
- }
- catch (final RollbackException ex)
- {
- throw new XAException(XAException.XA_RBROLLBACK);
- }
-
return imported;
}
Modified: labs/jbosstm/trunk/ArjunaJTS/jtax/classes/com/arjuna/ats/internal/jta/transaction/jts/jca/XATerminatorImple.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jtax/classes/com/arjuna/ats/internal/jta/transaction/jts/jca/XATerminatorImple.java 2009-06-03 14:44:19 UTC (rev 26811)
+++ labs/jbosstm/trunk/ArjunaJTS/jtax/classes/com/arjuna/ats/internal/jta/transaction/jts/jca/XATerminatorImple.java 2009-06-03 16:00:21 UTC (rev 26812)
@@ -47,7 +47,6 @@
import com.arjuna.ats.internal.jta.transaction.jts.subordinate.jca.coordinator.ServerTransaction;
import com.arjuna.ats.internal.jta.transaction.arjunacore.jca.SubordinationManager;
import com.arjuna.ats.internal.jta.transaction.arjunacore.jca.SubordinateTransaction;
-import com.arjuna.ats.internal.jta.transaction.arjunacore.jca.TxWorkManager;
import com.arjuna.ats.jta.exceptions.UnexpectedConditionException;
/**
@@ -57,7 +56,8 @@
*/
public class XATerminatorImple implements javax.resource.spi.XATerminator, XATerminatorExtensions
-{
+{
+
public void commit (Xid xid, boolean onePhase) throws XAException
{
try
@@ -74,18 +74,31 @@
tx.doOnePhaseCommit();
else
tx.doCommit();
+
+ SubordinationManager.getTransactionImporter()
+ .removeImportedTransaction(xid);
}
else
throw new XAException(XAException.XA_RETRY);
}
catch (RollbackException e)
{
+ SubordinationManager.getTransactionImporter()
+ .removeImportedTransaction(xid);
XAException xaException = new XAException(XAException.XA_RBROLLBACK);
xaException.initCause(e);
throw xaException;
}
catch (XAException ex)
{
+ // resource hasn't had a chance to recover yet
+
+ if (ex.errorCode != XAException.XA_RETRY)
+ {
+ SubordinationManager.getTransactionImporter()
+ .removeImportedTransaction(xid);
+ }
+
throw ex;
}
catch (final HeuristicCommitException ex)
@@ -108,12 +121,18 @@
}
catch (final IllegalStateException ex)
{
+ SubordinationManager.getTransactionImporter()
+ .removeImportedTransaction(xid);
+
XAException xaException = new XAException(XAException.XAER_NOTA);
xaException.initCause(ex);
throw xaException;
}
catch (SystemException ex)
{
+ SubordinationManager.getTransactionImporter()
+ .removeImportedTransaction(xid);
+
XAException xaException = new XAException(XAException.XAER_RMERR);
xaException.initCause(ex);
throw xaException;
@@ -138,6 +157,11 @@
xaException.initCause(ex);
throw xaException;
}
+ finally
+ {
+ SubordinationManager.getTransactionImporter()
+ .removeImportedTransaction(xid);
+ }
}
public int prepare (Xid xid) throws XAException
@@ -153,6 +177,9 @@
switch (tx.doPrepare())
{
case TwoPhaseOutcome.PREPARE_READONLY:
+ SubordinationManager.getTransactionImporter()
+ .removeImportedTransaction(xid);
+
return XAResource.XA_RDONLY;
case TwoPhaseOutcome.PREPARE_NOTOK:
try
@@ -163,7 +190,10 @@
{
// if we failed to prepare then rollback should not fail!
}
-
+
+ SubordinationManager.getTransactionImporter()
+ .removeImportedTransaction(xid);
+
throw new XAException(XAException.XA_RBROLLBACK);
case TwoPhaseOutcome.PREPARE_OK:
return XAResource.XA_OK;
@@ -299,12 +329,23 @@
if (tx.baseXid() != null)
{
tx.doRollback();
+
+ SubordinationManager.getTransactionImporter()
+ .removeImportedTransaction(xid);
}
else
throw new XAException(XAException.XA_RETRY);
}
catch (XAException ex)
{
+ // resource hasn't had a chance to recover yet
+
+ if (ex.errorCode != XAException.XA_RETRY)
+ {
+ SubordinationManager.getTransactionImporter()
+ .removeImportedTransaction(xid);
+ }
+
throw ex;
}
catch (HeuristicCommitException ex)
@@ -327,12 +368,18 @@
}
catch (final IllegalStateException ex)
{
+ SubordinationManager.getTransactionImporter()
+ .removeImportedTransaction(xid);
+
XAException xaException = new XAException(XAException.XAER_NOTA);
xaException.initCause(ex);
throw xaException;
}
catch (SystemException ex)
{
+ SubordinationManager.getTransactionImporter()
+ .removeImportedTransaction(xid);
+
XAException xaException = new XAException(XAException.XAER_RMERR);
xaException.initCause(ex);
throw xaException;
More information about the jboss-svn-commits
mailing list