[jbosscache-commits] JBoss Cache SVN: r5892 - core/trunk/src/main/java/org/jboss/cache/interceptors.

jbosscache-commits at lists.jboss.org jbosscache-commits at lists.jboss.org
Tue May 27 16:13:32 EDT 2008


Author: manik.surtani at jboss.com
Date: 2008-05-27 16:13:32 -0400 (Tue, 27 May 2008)
New Revision: 5892

Modified:
   core/trunk/src/main/java/org/jboss/cache/interceptors/CacheLoaderInterceptor.java
   core/trunk/src/main/java/org/jboss/cache/interceptors/PessimisticLockInterceptor.java
Log:
Fixed proper cache locking during cache loading

Modified: core/trunk/src/main/java/org/jboss/cache/interceptors/CacheLoaderInterceptor.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/interceptors/CacheLoaderInterceptor.java	2008-05-27 19:42:22 UTC (rev 5891)
+++ core/trunk/src/main/java/org/jboss/cache/interceptors/CacheLoaderInterceptor.java	2008-05-27 20:13:32 UTC (rev 5892)
@@ -431,8 +431,10 @@
    {
       if (configuration.isNodeLockingOptimistic()) return;
 
-      lockManager.lock(fqn, lockType, ctx.getGlobalTransaction() != null ? ctx.getGlobalTransaction() : Thread.currentThread());
-      if (recursive) lockManager.lockAllAndRecord(fqn, lockType, ctx);
+      if (recursive)
+         lockManager.lockAllAndRecord(fqn, lockType, ctx);
+      else
+         lockManager.lockAndRecord(fqn, lockType, ctx);
    }
 
    /**

Modified: core/trunk/src/main/java/org/jboss/cache/interceptors/PessimisticLockInterceptor.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/interceptors/PessimisticLockInterceptor.java	2008-05-27 19:42:22 UTC (rev 5891)
+++ core/trunk/src/main/java/org/jboss/cache/interceptors/PessimisticLockInterceptor.java	2008-05-27 20:13:32 UTC (rev 5892)
@@ -190,9 +190,14 @@
          lockManager.lockAllAndRecord(dataContainer.peek(command.getTo(), true, false), READ, ctx);
       }
       Object retValue = invokeNextInterceptor(ctx, command);
-      // do a REAL remove here.
-      NodeSPI n = dataContainer.peek(command.getFqn(), true, false);
-      if (n != null) lockManager.unlockAll(n, Thread.currentThread());
+
+      if (ctx.getTransaction() == null) // not transactional
+      {
+         // do a REAL remove here.
+         NodeSPI n = dataContainer.peek(command.getFqn(), true, false);
+         if (n != null) lockManager.unlockAll(n, Thread.currentThread());
+      }
+
       return retValue;
    }
 




More information about the jbosscache-commits mailing list