[jboss-cvs] JBossAS SVN: r109300 - 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
Fri Nov 12 12:00:30 EST 2010


Author: pferraro
Date: 2010-11-12 12:00:29 -0500 (Fri, 12 Nov 2010)
New Revision: 109300

Modified:
   projects/cluster/ha-server-cache-ispn/trunk/src/main/java/org/jboss/web/tomcat/service/session/distributedcache/ispn/DefaultLockManagerSource.java
Log:
Now that the container name is available from the GlobalConfiguration - use this instead of the CacheContainer itself - to prevent the possibility of holding application classloader references in the static container map.

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-12 16:48:41 UTC (rev 109299)
+++ projects/cluster/ha-server-cache-ispn/trunk/src/main/java/org/jboss/web/tomcat/service/session/distributedcache/ispn/DefaultLockManagerSource.java	2010-11-12 17:00:29 UTC (rev 109300)
@@ -22,13 +22,12 @@
 package org.jboss.web.tomcat.service.session.distributedcache.ispn;
 
 import java.security.AccessController;
+import java.util.HashMap;
 import java.util.HashSet;
-import java.util.IdentityHashMap;
 import java.util.Map;
 import java.util.Set;
 
 import org.infinispan.Cache;
-import org.infinispan.manager.CacheContainer;
 import org.infinispan.manager.EmbeddedCacheManager;
 import org.infinispan.notifications.Listener;
 import org.infinispan.notifications.cachemanagerlistener.annotation.CacheStopped;
@@ -55,7 +54,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<CacheContainer, LockManagerEntry> lockManagers = new IdentityHashMap<CacheContainer, LockManagerEntry>();
+   private static final Map<String, LockManagerEntry> lockManagers = new HashMap<String, LockManagerEntry>();
    
    // Need to cast since ContextClassLoaderSwitcher.NewInstance does not generically implement PrivilegedAction<ContextClassLoaderSwitcher>
    @SuppressWarnings("unchecked")
@@ -70,11 +69,12 @@
    {
       if (!cache.getConfiguration().getCacheMode().isClustered()) return null;
       
-      CacheContainer container = cache.getCacheManager();
+      EmbeddedCacheManager container = (EmbeddedCacheManager) cache.getCacheManager();
+      String containerName = container.getGlobalConfiguration().getCacheManagerName();
       
       synchronized (lockManagers)
       {
-         LockManagerEntry entry = lockManagers.get(container);
+         LockManagerEntry entry = lockManagers.get(containerName);
          
          if (entry == null)
          {
@@ -91,14 +91,14 @@
                context.reset();
             }
             
-            trace("Started lock manager for cluster %s", entry);
+            debug("Started lock manager for cluster %s", entry);
             
-            ((EmbeddedCacheManager) container).addListener(this);
+            container.addListener(this);
             
-            lockManagers.put(container, entry);
+            lockManagers.put(containerName, entry);
          }
          
-         trace("Registering %s with lock manager for cluster %s", cache, entry);
+         debug("Registering %s with lock manager for cluster %s", cache, entry);
          
          entry.addCache(cache.getName());
          
@@ -195,34 +195,32 @@
    @CacheStopped
    public void stopped(CacheStoppedEvent event)
    {
-      CacheContainer container = event.getCacheManager();
+      EmbeddedCacheManager container = event.getCacheManager();
+      String containerName = container.getGlobalConfiguration().getCacheManagerName();
       
       synchronized (lockManagers)
       {
-         LockManagerEntry entry = lockManagers.get(container);
+         LockManagerEntry entry = lockManagers.get(containerName);
          
          if (entry != null)
          {
             String cacheName = event.getCacheName();
 
-            trace("Deregistering %s from lock manager for cluster %s", cacheName, entry);
+            debug("Deregistering %s from lock manager for cluster %s", cacheName, entry);
             
             // Returns true if this was the last cache
             if (entry.removeCache(cacheName))
             {
-               trace("Stopped lock manager for cluster %s", entry);
+               debug("Stopped lock manager for cluster %s", entry);
                
-               lockManagers.remove(container);
+               lockManagers.remove(containerName);
             }
          }
       }
    }
    
-   private static void trace(String message, Object... args)
+   private static void debug(String message, Object... args)
    {
-      if (log.isTraceEnabled())
-      {
-         log.trace(String.format(message, args));
-      }
+      log.debug(String.format(message, args));
    }
 }



More information about the jboss-cvs-commits mailing list