[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