[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