[Mulgara-svn] r333 - trunk/src/jar/resolver/java/org/mulgara/resolver

ronald at mulgara.org ronald at mulgara.org
Sat Aug 4 22:19:26 UTC 2007


Author: ronald
Date: 2007-08-04 17:19:26 -0500 (Sat, 04 Aug 2007)
New Revision: 333

Modified:
   trunk/src/jar/resolver/java/org/mulgara/resolver/MulgaraTransaction.java
Log:
Fix error handling in implicit rollback. Since any error here will lead to
abortTransaction() being invoked, clearing the manager in the error case will
lead to a NPE in abortTransaction(). Furthermore, since abortTransaction()
cleans everything up it seems better to leave the error handling to that.


Modified: trunk/src/jar/resolver/java/org/mulgara/resolver/MulgaraTransaction.java
===================================================================
--- trunk/src/jar/resolver/java/org/mulgara/resolver/MulgaraTransaction.java	2007-08-04 21:57:52 UTC (rev 332)
+++ trunk/src/jar/resolver/java/org/mulgara/resolver/MulgaraTransaction.java	2007-08-04 22:19:26 UTC (rev 333)
@@ -442,23 +442,14 @@
       switch (state) {
         case ACTUNREF:
         case ACTREF:
-            try {
-              rollbackCause = cause;
-            } finally { try {
-              transaction.rollback();
-            } finally { try {
-              transaction = null;
-            } finally { try {
-              context.clear();
-            } finally { try {
-              enlisted.clear();
-            } finally { try {
-              state = State.FAILED;
-            } finally { try {
-              manager.transactionComplete(this);
-            } finally {
-              manager = null;
-            } } } } } } }
+            rollbackCause = cause;
+            transaction.rollback();
+            transaction = null;
+            context.clear();
+            enlisted.clear();
+            state = State.FAILED;
+            manager.transactionComplete(this);
+            manager = null;
             return new MulgaraTransactionException("Transaction rollback triggered", cause);
         case DEACTREF:
           throw new IllegalStateException("Attempt to rollback deactivated transaction");




More information about the Mulgara-svn mailing list