[jboss-cvs] JBossAS SVN: r109101 - projects/cluster/ha-server-cache-ispn/trunk/src/main/java/org/jboss/web/tomcat/service/session/distributedcache/ispn.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Nov 3 16:23:48 EDT 2010


Author: pferraro
Date: 2010-11-03 16:23:47 -0400 (Wed, 03 Nov 2010)
New Revision: 109101

Modified:
   projects/cluster/ha-server-cache-ispn/trunk/src/main/java/org/jboss/web/tomcat/service/session/distributedcache/ispn/DefaultLockManagerSource.java
Log:
Remove cache name from key of lock manager map.  Instead use identity map, indexed by cache container

Modified: projects/cluster/ha-server-cache-ispn/trunk/src/main/java/org/jboss/web/tomcat/service/session/distributedcache/ispn/DefaultLockManagerSource.java
===================================================================
--- projects/cluster/ha-server-cache-ispn/trunk/src/main/java/org/jboss/web/tomcat/service/session/distributedcache/ispn/DefaultLockManagerSource.java	2010-11-03 20:09:58 UTC (rev 109100)
+++ projects/cluster/ha-server-cache-ispn/trunk/src/main/java/org/jboss/web/tomcat/service/session/distributedcache/ispn/DefaultLockManagerSource.java	2010-11-03 20:23:47 UTC (rev 109101)
@@ -21,8 +21,8 @@
  */
 package org.jboss.web.tomcat.service.session.distributedcache.ispn;
 
-import java.util.HashMap;
 import java.util.HashSet;
+import java.util.IdentityHashMap;
 import java.util.Map;
 import java.util.Set;
 
@@ -53,7 +53,7 @@
    static final Logger log = Logger.getLogger(DefaultLockManagerSource.class);
    
    // Store LockManagers in static map so they can be shared across DCMs
-   private static final Map<LockManagerKey, LockManagerEntry> lockManagers = new HashMap<LockManagerKey, LockManagerEntry>();
+   private static final Map<CacheContainer, LockManagerEntry> lockManagers = new IdentityHashMap<CacheContainer, LockManagerEntry>();
    
    /**
     * {@inheritDoc}
@@ -66,12 +66,9 @@
       
       CacheContainer container = cache.getCacheManager();
       
-      String cacheName = cache.getName();
-      LockManagerKey key = new LockManagerKey(container, cacheName);
-      
       synchronized (lockManagers)
       {
-         LockManagerEntry entry = lockManagers.get(key);
+         LockManagerEntry entry = lockManagers.get(container);
          
          if (entry == null)
          {
@@ -83,10 +80,10 @@
             
             ((EmbeddedCacheManager) container).addListener(this);
             
-            lockManagers.put(key, entry);
+            lockManagers.put(container, entry);
          }
          
-         trace("Registering %s with lock manager for cluster %s", cacheName, entry);
+         trace("Registering %s with lock manager for cluster %s", cache, entry);
          
          entry.addCache(cache.getName());
          
@@ -94,42 +91,6 @@
       }
    }
    
-   private static class LockManagerKey
-   {
-      private final CacheContainer container;
-      private final String cacheName;
-      
-      public LockManagerKey(CacheContainer container, String cacheName)
-      {
-         this.container = container;
-         this.cacheName = cacheName;
-      }
-
-      /**
-       * {@inheritDoc}
-       * @see java.lang.Object#hashCode()
-       */
-      @Override
-      public int hashCode()
-      {
-         return this.cacheName.hashCode();
-      }
-
-      /**
-       * {@inheritDoc}
-       * @see java.lang.Object#equals(java.lang.Object)
-       */
-      @Override
-      public boolean equals(Object object)
-      {
-         if ((object == null) || !(object instanceof LockManagerKey)) return false;
-         
-         LockManagerKey key = (LockManagerKey) object;
-         
-         return this.container == key.container && this.cacheName.equals(key.cacheName);
-      }
-   }
-   
    private static class LockManagerEntry
    {
       private final SharedLocalYieldingClusterLockManager lockManager;
@@ -219,15 +180,16 @@
    @CacheStopped
    public void stopped(CacheStoppedEvent event)
    {
-      String cacheName = event.getCacheName();
-      LockManagerKey key = new LockManagerKey(event.getCacheManager(), cacheName);
-
+      CacheContainer container = event.getCacheManager();
+      
       synchronized (lockManagers)
       {
-         LockManagerEntry entry = lockManagers.get(key);
+         LockManagerEntry entry = lockManagers.get(container);
          
          if (entry != null)
          {
+            String cacheName = event.getCacheName();
+
             trace("Deregistering %s from lock manager for cluster %s", cacheName, entry);
             
             // Returns true if this was the last cache
@@ -235,7 +197,7 @@
             {
                trace("Stopped lock manager for cluster %s", entry);
                
-               lockManagers.remove(key);
+               lockManagers.remove(container);
             }
          }
       }



More information about the jboss-cvs-commits mailing list