[jboss-cvs] JBossCache/src/org/jboss/cache/interceptors ...
Manik Surtani
manik at jboss.org
Mon Jun 18 18:44:26 EDT 2007
User: msurtani
Date: 07/06/18 18:44:26
Modified: src/org/jboss/cache/interceptors
CacheLoaderInterceptor.java
Log:
cache loader locking improvements
Revision Changes Path
1.83 +7 -5 JBossCache/src/org/jboss/cache/interceptors/CacheLoaderInterceptor.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: CacheLoaderInterceptor.java
===================================================================
RCS file: /cvsroot/jboss/JBossCache/src/org/jboss/cache/interceptors/CacheLoaderInterceptor.java,v
retrieving revision 1.82
retrieving revision 1.83
diff -u -b -r1.82 -r1.83
--- CacheLoaderInterceptor.java 8 Jun 2007 15:39:28 -0000 1.82
+++ CacheLoaderInterceptor.java 18 Jun 2007 22:44:26 -0000 1.83
@@ -24,7 +24,7 @@
* Loads nodes that don't exist at the time of the call into memory from the CacheLoader
*
* @author Bela Ban
- * @version $Id: CacheLoaderInterceptor.java,v 1.82 2007/06/08 15:39:28 msurtani Exp $
+ * @version $Id: CacheLoaderInterceptor.java,v 1.83 2007/06/18 22:44:26 msurtani Exp $
*/
public class CacheLoaderInterceptor extends BaseCacheLoaderInterceptor implements CacheLoaderInterceptorMBean
{
@@ -175,10 +175,7 @@
{
n = createTempNode(fqn, entry);
}
- else if (!wasRemovedInTx(fqn, ctx.getGlobalTransaction()))
- {
- n = loadNode(ctx, fqn, n, entry);
- }
+
// Only attempt to acquire this lock if we need to - i.e., if
// the lock hasn't already been acquired by the Lock
// interceptor. CRUD methods (put, remove) would have acquired
@@ -195,6 +192,11 @@
{
lock(fqn, NodeLock.LockType.WRITE, false);// non-recursive for now
}
+
+ if (!initNode && !wasRemovedInTx(fqn, ctx.getGlobalTransaction()))
+ {
+ n = loadNode(ctx, fqn, n, entry);
+ }
}
// The complete list of children aren't known without loading them
More information about the jboss-cvs-commits
mailing list