[Mulgara-svn] r652 - branches/mgr-73/src/jar/resolver/java/org/mulgara/resolver

ronald at mulgara.org ronald at mulgara.org
Sun Feb 24 09:37:42 UTC 2008


Author: ronald
Date: 2008-02-24 01:37:38 -0800 (Sun, 24 Feb 2008)
New Revision: 652

Modified:
   branches/mgr-73/src/jar/resolver/java/org/mulgara/resolver/MulgaraExternalTransactionFactory.java
   branches/mgr-73/src/jar/resolver/java/org/mulgara/resolver/MulgaraInternalTransactionFactory.java
Log:
More synchronization fixes: one in code introduced in [651], one similar to
what was fixed in [649].


Modified: branches/mgr-73/src/jar/resolver/java/org/mulgara/resolver/MulgaraExternalTransactionFactory.java
===================================================================
--- branches/mgr-73/src/jar/resolver/java/org/mulgara/resolver/MulgaraExternalTransactionFactory.java	2008-02-23 14:07:43 UTC (rev 651)
+++ branches/mgr-73/src/jar/resolver/java/org/mulgara/resolver/MulgaraExternalTransactionFactory.java	2008-02-24 09:37:38 UTC (rev 652)
@@ -151,10 +151,15 @@
   }
 
   public void closingSession(DatabaseSession session) throws MulgaraTransactionException {
+    acquireMutex();
     try {
-      super.closingSession(session);
+      try {
+        super.closingSession(session);
+      } finally {
+        xaResources.remove(session);
+      }
     } finally {
-      xaResources.remove(session);
+      releaseMutex();
     }
   }
 

Modified: branches/mgr-73/src/jar/resolver/java/org/mulgara/resolver/MulgaraInternalTransactionFactory.java
===================================================================
--- branches/mgr-73/src/jar/resolver/java/org/mulgara/resolver/MulgaraInternalTransactionFactory.java	2008-02-23 14:07:43 UTC (rev 651)
+++ branches/mgr-73/src/jar/resolver/java/org/mulgara/resolver/MulgaraInternalTransactionFactory.java	2008-02-24 09:37:38 UTC (rev 652)
@@ -125,8 +125,13 @@
   }
 
   public Set<MulgaraTransaction> getTransactionsForSession(DatabaseSession session) {
-    Set <MulgaraTransaction> xas = sessionXAMap.getN(session);
-    return xas == null ? new HashSet<MulgaraTransaction>() : xas;
+    acquireMutex();
+    try {
+      Set <MulgaraTransaction> xas = sessionXAMap.getN(session);
+      return xas == null ? new HashSet<MulgaraTransaction>() : xas;
+    } finally {
+      releaseMutex();
+    }
   }
 
   public MulgaraTransaction newMulgaraTransaction(DatabaseOperationContext context)




More information about the Mulgara-svn mailing list