[Mulgara-svn] r1063 - branches/mgr-121-lockrecovery/src/jar/resolver/java/org/mulgara/resolver

ronald at mulgara.org ronald at mulgara.org
Mon Jul 7 12:54:36 UTC 2008


Author: ronald
Date: 2008-07-07 05:54:35 -0700 (Mon, 07 Jul 2008)
New Revision: 1063

Modified:
   branches/mgr-121-lockrecovery/src/jar/resolver/java/org/mulgara/resolver/MulgaraInternalTransaction.java
Log:
Cleaning up a bit:
 * cleaned out FIXME's
 * removed unnecessary mutex acquisition/release on internal methods
 * remove obsolete synchronized blocks around currentThread (mutex now protects)


Modified: branches/mgr-121-lockrecovery/src/jar/resolver/java/org/mulgara/resolver/MulgaraInternalTransaction.java
===================================================================
--- branches/mgr-121-lockrecovery/src/jar/resolver/java/org/mulgara/resolver/MulgaraInternalTransaction.java	2008-07-07 12:54:31 UTC (rev 1062)
+++ branches/mgr-121-lockrecovery/src/jar/resolver/java/org/mulgara/resolver/MulgaraInternalTransaction.java	2008-07-07 12:54:35 UTC (rev 1063)
@@ -278,10 +278,8 @@
     acquireMutex(0, false, MulgaraTransactionException.class);
     try {
       try {
-        synchronized (this) {
-          if (currentThread != null && !currentThread.equals(Thread.currentThread())) {
-            throw new MulgaraTransactionException("Concurrent access attempted to transaction: Transaction has NOT been rolledback.");
-          }
+        if (currentThread != null && !currentThread.equals(Thread.currentThread())) {
+          throw new MulgaraTransactionException("Concurrent access attempted to transaction: Transaction has NOT been rolledback.");
         }
 
         switch (state) {
@@ -323,59 +321,38 @@
 
   private void startTransaction() throws MulgaraTransactionException {
     report("Initiating transaction");
-    acquireMutex(0, false, MulgaraTransactionException.class);
     try {
-      try {
-        transaction = factory.transactionStart(this);
-        synchronized (this) {
-          currentThread = Thread.currentThread();
-        }
-      } catch (Throwable th) {
-        throw abortTransaction("Failed to start transaction", th);
-      }
-    } finally {
-      releaseMutex();
+      transaction = factory.transactionStart(this);
+      currentThread = Thread.currentThread();
+    } catch (Throwable th) {
+      throw abortTransaction("Failed to start transaction", th);
     }
   }
 
   private void resumeTransaction() throws MulgaraTransactionException {
 //    report("Resuming transaction");
-    acquireMutex(0, false, MulgaraTransactionException.class);
     try {
-      try {
-        factory.transactionResumed(this, transaction);
-        synchronized (this) {
-          currentThread = Thread.currentThread();
-        }
-      } catch (Throwable th) {
-        throw abortTransaction("Failed to resume transaction", th);
-      }
-    } finally {
-      releaseMutex();
+      factory.transactionResumed(this, transaction);
+      currentThread = Thread.currentThread();
+    } catch (Throwable th) {
+      throw abortTransaction("Failed to resume transaction", th);
     }
   }
 
   private void suspendTransaction() throws MulgaraTransactionException {
 //    report("Suspending Transaction");
-    acquireMutex(0, false, MulgaraTransactionException.class);
     try {
-      try {
-        if (using < 1) {
-          throw implicitRollback(
-              new MulgaraTransactionException("Attempt to suspend unreferenced transaction"));
-        }
-        transaction = factory.transactionSuspended(this);
-        synchronized (this) {
-          currentThread = null;
-        }
-        state = State.DEACTREF;
-      } catch (Throwable th) {
-        throw implicitRollback(th);
-      } finally {
-//      report("Finished suspending transaction");
+      if (using < 1) {
+        throw implicitRollback(
+            new MulgaraTransactionException("Attempt to suspend unreferenced transaction"));
       }
+      transaction = factory.transactionSuspended(this);
+      currentThread = null;
+      state = State.DEACTREF;
+    } catch (Throwable th) {
+      throw implicitRollback(th);
     } finally {
-      releaseMutex();
+//      report("Finished suspending transaction");
     }
   }
 
@@ -399,11 +376,9 @@
           enlisted.clear();
         } finally { try {
           factory.transactionComplete(this);
-        } finally { try {
-          //FIXME: factory = null;
         } finally {
           report("Committed transaction");
-        } } } } } }
+        } } } } }
       } catch (Throwable th) {
         errorReport("Error cleaning up transaction post-commit", th);
         throw new MulgaraTransactionException("Error cleaning up transaction post-commit", th);
@@ -454,7 +429,6 @@
             enlisted.clear();
             factory.transactionComplete(this);
             transaction = null;
-            //FIXME: factory = null;
             state = State.FINISHED;
             break;
           case DEACTREF:
@@ -518,7 +492,6 @@
             enlisted.clear();
             state = State.FAILED;
             factory.transactionAborted(this);
-            //FIXME: factory = null;
             return new MulgaraTransactionException("Transaction rollback triggered", cause);
         case DEACTREF:
           throw new IllegalStateException("Attempt to rollback deactivated transaction");
@@ -577,11 +550,9 @@
           enlisted.clear();
         } finally { try {
           transaction = null;
-        } finally { try {
-          //FIXME: factory = null;
         } finally {
           state = State.FAILED;
-        } } } } } } } }
+        } } } } } } }
         return new MulgaraTransactionException(errorMessage + " - Aborting", cause);
       } catch (Throwable th) {
         throw new MulgaraTransactionException(errorMessage + " - Failed to abort cleanly", th);
@@ -780,7 +751,6 @@
       errorReport("Reference counting error in transaction", null);
     }
 
-    //FIXME: if (factory != null || transaction != null) {
     if (transaction != null) {
       errorReport("Transaction not terminated properly", null);
     }




More information about the Mulgara-svn mailing list