[jboss-cvs] JBossAS SVN: r107985 - 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 Sep 3 14:08:59 EDT 2010


Author: pferraro
Date: 2010-09-03 14:08:59 -0400 (Fri, 03 Sep 2010)
New Revision: 107985

Modified:
   projects/cluster/ha-server-cache-ispn/trunk/src/main/java/org/jboss/web/tomcat/service/session/distributedcache/ispn/DistributedCacheManager.java
Log:
Don't cause stop() to fail if jvm route cache entry removal fails.

Modified: projects/cluster/ha-server-cache-ispn/trunk/src/main/java/org/jboss/web/tomcat/service/session/distributedcache/ispn/DistributedCacheManager.java
===================================================================
--- projects/cluster/ha-server-cache-ispn/trunk/src/main/java/org/jboss/web/tomcat/service/session/distributedcache/ispn/DistributedCacheManager.java	2010-09-03 16:05:23 UTC (rev 107984)
+++ projects/cluster/ha-server-cache-ispn/trunk/src/main/java/org/jboss/web/tomcat/service/session/distributedcache/ispn/DistributedCacheManager.java	2010-09-03 18:08:59 UTC (rev 107985)
@@ -29,6 +29,7 @@
 
 import org.infinispan.AdvancedCache;
 import org.infinispan.Cache;
+import org.infinispan.CacheException;
 import org.infinispan.atomic.AtomicMap;
 import org.infinispan.config.CacheLoaderManagerConfig;
 import org.infinispan.context.Flag;
@@ -170,9 +171,16 @@
       if (this.cache.getConfiguration().getCacheMode().isDistributed())
       {
          EmbeddedCacheManager container = (EmbeddedCacheManager) this.cache.getCacheManager();
+         Address address = container.getAddress();
+         try
+         {
+            this.getJvmRouteCache().remove(address);
+         }
+         catch (CacheException e)
+         {
+            log.warn("Failed to remove " + address + " jvm route entry from from web session cache", e);
+         }
          
-         this.getJvmRouteCache().remove(container.getAddress());
-         
          container.removeListener(this);
       }
       
@@ -567,15 +575,27 @@
       {
          if (!newMembers.contains(member))
          {
-            this.getJvmRouteCache().remove(member);
+            if (this.getJvmRouteCache().remove(member) != null)
+            {
+               log.info("Removed stale jvm route entry from web session cache on behalf of member " + member);
+            }
          }
       }
       
-      // Restore our jvm route in cache if we are new
+      // Restore our jvm route in cache if we are joining (result of a split/merge)
       Address localAddress = event.getLocalAddress();
       if (!oldMembers.contains(localAddress) && newMembers.contains(localAddress))
       {
-         this.getJvmRouteCache().put(localAddress, this.manager.getJvmRoute());
+         String jvmRoute = this.manager.getJvmRoute();
+         String oldJvmRoute = this.getJvmRouteCache().put(localAddress, jvmRoute);
+         if (oldJvmRoute == null)
+         {
+            log.info("Adding missing jvm route entry to web session cache");
+         }
+         else if (!oldJvmRoute.equals(jvmRoute))
+         {
+            log.info("Updating jvm route entry in web session cache.  old = " + oldJvmRoute + ", new = " + jvmRoute);
+         }
       }
    }
    



More information about the jboss-cvs-commits mailing list