Author: pats Date: Wed Oct 20 21:16:59 2010 New Revision: 1025757 URL: http://svn.apache.org/viewvc?rev=1025757&view=rev Log: RIVER-361: Make TxnManagerImpl conform to TransactionManager interface by only throwing CannotAbortException for an attempt to abort a COMMITTED transaction. The change lets retries of aborts work, so GetStateTest passes.
Modified: incubator/river/jtsk/trunk/src/com/sun/jini/mahalo/TxnManagerImpl.java Modified: incubator/river/jtsk/trunk/src/com/sun/jini/mahalo/TxnManagerImpl.java URL: http://svn.apache.org/viewvc/incubator/river/jtsk/trunk/src/com/sun/jini/mahalo/TxnManagerImpl.java?rev=1025757&r1=1025756&r2=1025757&view=diff ============================================================================== --- incubator/river/jtsk/trunk/src/com/sun/jini/mahalo/TxnManagerImpl.java (original) +++ incubator/river/jtsk/trunk/src/com/sun/jini/mahalo/TxnManagerImpl.java Wed Oct 20 21:16:59 2010 @@ -919,19 +919,14 @@ class TxnManagerImpl /*extends RemoteSer "Retrieved TxnManagerTransaction: {0}", txntr); } - if(txntr != null) { - - switch(txntr.getState()) { - case TransactionConstants.COMMITTED: - if(doExpiryCheck && !ensureCurrent(txntr)) { - throw new TimeoutExpiredException("Cannot abort, transaction probably expired", true); - } else { - throw new CannotAbortException("Already committed"); - } - case TransactionConstants.ABORTED : - throw new CannotAbortException("Transaction previously aborted"); - } - + if(txntr != null) { + if(txntr.getState() == TransactionConstants.COMMITTED) { + if(doExpiryCheck && !ensureCurrent(txntr)) { + throw new TimeoutExpiredException("Cannot abort, transaction probably expired", true); + } else { + throw new CannotAbortException("Already committed"); + } + } } else { throw new UnknownTransactionException("No such transaction ["+id+"]"); }