[jboss-cvs] JBossCache/src/org/jboss/cache ...

Manik Surtani msurtani at jboss.com
Fri Nov 24 09:19:30 EST 2006


  User: msurtani
  Date: 06/11/24 09:19:30

  Modified:    src/org/jboss/cache  Tag: Branch_JBossCache_1_3_0
                        TreeCache.java
  Log:
  Fixes to JBCACHE-875
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.142.2.3 +40 -3     JBossCache/src/org/jboss/cache/TreeCache.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: TreeCache.java
  ===================================================================
  RCS file: /cvsroot/jboss/JBossCache/src/org/jboss/cache/TreeCache.java,v
  retrieving revision 1.142.2.2
  retrieving revision 1.142.2.3
  diff -u -b -r1.142.2.2 -r1.142.2.3
  --- TreeCache.java	23 Nov 2006 18:49:38 -0000	1.142.2.2
  +++ TreeCache.java	24 Nov 2006 14:19:30 -0000	1.142.2.3
  @@ -7,6 +7,7 @@
   package org.jboss.cache;
   
   import EDU.oswego.cs.dl.util.concurrent.CopyOnWriteArraySet;
  +import EDU.oswego.cs.dl.util.concurrent.ConcurrentHashMap;
   import org.apache.commons.logging.Log;
   import org.apache.commons.logging.LogFactory;
   import org.jboss.cache.config.CacheLoaderConfig;
  @@ -60,7 +61,7 @@
    * @author <a href="mailto:manik at jboss.org">Manik Surtani (manik at jboss.org)</a>
    * @author Brian Stansberry
    * @author Daniel Huang (dhuang at jboss.org)
  - * @version $Id: TreeCache.java,v 1.142.2.2 2006/11/23 18:49:38 msurtani Exp $
  + * @version $Id: TreeCache.java,v 1.142.2.3 2006/11/24 14:19:30 msurtani Exp $
    *          <p/>
    */
   public class TreeCache extends ServiceMBeanSupport implements TreeCacheMBean, Cloneable, MembershipListener
  @@ -300,6 +301,8 @@
       */
      protected final Set activationChangeNodes = new HashSet();
   
  +   private Map removedNodes = new ConcurrentHashMap();
  +
      static
      {
         try
  @@ -1132,6 +1135,11 @@
         return this;
      }
   
  +   public Map getRemovedNodesMap()
  +   {
  +      return removedNodes;
  +   }
  +
      /**
       * Fetch the group state from the current coordinator. If successful, this will trigger setState().
       */
  @@ -3061,7 +3069,13 @@
      //added so I can get nodes internally without triggering stuff
      public DataNode peek(Fqn fqn)
      {
  -      return findInternal(fqn);
  +      DataNode n = findInternal(fqn);
  +      if (n == null)
  +      {
  +         // check the deleted nodes map
  +         n = (DataNode) removedNodes.get(fqn);
  +      }
  +      return n;
      }
   
      /**
  @@ -3551,6 +3565,17 @@
         Map children;
   
         children = root.getChildren();
  +
  +      sb.append("Root lock: ");
  +
  +      if(root.isLocked()) {
  +         sb.append("\t(");
  +         root.getLock().toString(sb);
  +         sb.append(")");
  +      }
  +
  +      sb.append("\n");
  +
         if (children != null && children.size() > 0)
         {
            Collection nodes = children.values();
  @@ -3561,6 +3586,18 @@
            }
         } else
            sb.append(SEPARATOR);
  +      if (!removedNodes.isEmpty())
  +      {
  +         sb.append("\n\nPlus the following locks on removed nodes:\n");
  +         for (Iterator it = removedNodes.keySet().iterator(); it.hasNext();)
  +         {
  +            Fqn f = (Fqn) it.next();
  +            DataNode dn = (DataNode) removedNodes.get(f);
  +            sb.append("  ");
  +            sb.append(f);
  +            dn.printLockInfo(sb, indent);
  +         }
  +      }
         return sb.toString();
      }
   
  @@ -3569,7 +3606,7 @@
       */
      public int getNumberOfLocksHeld()
      {
  -      return numLocks(root);
  +      return numLocks(root) + removedNodes.size();
      }
   
   
  
  
  



More information about the jboss-cvs-commits mailing list