[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