[jboss-cvs] JBossAS SVN: r109041 - in projects/cluster/ha-server-cache-ispn/trunk/src: test/java/org/jboss/web/tomcat/service/session/distributedcache/ispn and 1 other directory.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Mon Nov 1 11:48:57 EDT 2010
Author: pferraro
Date: 2010-11-01 11:48:56 -0400 (Mon, 01 Nov 2010)
New Revision: 109041
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/test/java/org/jboss/web/tomcat/service/session/distributedcache/ispn/DistributedCacheManagerFactoryTest.java
projects/cluster/ha-server-cache-ispn/trunk/src/test/java/org/jboss/web/tomcat/service/session/distributedcache/ispn/DistributedCacheManagerTest.java
Log:
Fix removal of cache manager listener on stop().
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-11-01 14:54:52 UTC (rev 109040)
+++ projects/cluster/ha-server-cache-ispn/trunk/src/main/java/org/jboss/web/tomcat/service/session/distributedcache/ispn/DistributedCacheManager.java 2010-11-01 15:48:56 UTC (rev 109041)
@@ -30,6 +30,7 @@
import org.infinispan.AdvancedCache;
import org.infinispan.Cache;
import org.infinispan.config.CacheLoaderManagerConfig;
+import org.infinispan.config.Configuration;
import org.infinispan.context.Flag;
import org.infinispan.distribution.DistributionManager;
import org.infinispan.manager.CacheContainer;
@@ -93,13 +94,14 @@
return map;
}
+ final SessionAttributeStorage<T> attributeStorage;
private final LocalDistributableSessionManager manager;
private final SharedLocalYieldingClusterLockManager lockManager;
- final SessionAttributeStorage<T> attributeStorage;
private final Cache<String, Map<Object, Object>> sessionCache;
private final CacheInvoker invoker;
private final BatchingManager batchingManager;
private final boolean passivationEnabled;
+ private final Object viewChangeListener;
public DistributedCacheManager(LocalDistributableSessionManager manager,
Cache<String, Map<Object, Object>> sessionCache, Cache<Address, String> jvmRouteCache,
@@ -113,9 +115,12 @@
this.batchingManager = batchingManager;
this.invoker = invoker;
- CacheLoaderManagerConfig loaderManagerConfig = this.sessionCache.getConfiguration().getCacheLoaderManagerConfig();
+ Configuration configuration = this.sessionCache.getConfiguration();
+ CacheLoaderManagerConfig loaderManagerConfig = configuration.getCacheLoaderManagerConfig();
this.passivationEnabled = (loaderManagerConfig != null) ? loaderManagerConfig.isPassivation().booleanValue() && !loaderManagerConfig.isShared().booleanValue() : false;
+
+ this.viewChangeListener = configuration.getCacheMode().isDistributed() ? new ViewChangeListener(this.manager) : null;
}
/**
@@ -132,11 +137,11 @@
this.sessionCache.addListener(this);
- if (this.sessionCache.getConfiguration().getCacheMode().isDistributed())
+ if (this.viewChangeListener != null)
{
EmbeddedCacheManager container = (EmbeddedCacheManager) this.sessionCache.getCacheManager();
- container.addListener(new ViewChangeListener(this.manager));
+ container.addListener(this.viewChangeListener);
String jvmRoute = this.manager.getJvmRoute();
@@ -159,11 +164,11 @@
@Override
public void stop()
{
- if (this.sessionCache.getConfiguration().getCacheMode().isDistributed())
+ if (this.viewChangeListener != null)
{
EmbeddedCacheManager container = (EmbeddedCacheManager) this.sessionCache.getCacheManager();
- container.removeListener(this);
+ container.removeListener(this.viewChangeListener);
}
this.sessionCache.removeListener(this);
@@ -446,6 +451,8 @@
LockResult result = lockResultMap.get(this.lockManager.lock(this.getSessionLockKey(sessionId), container.getGlobalConfiguration().getDistributedSyncTimeout(), newLock));
+ trace("acquireSessionOwnership(%s, %s) = %s", sessionId, newLock, result);
+
return (result != null) ? result : LockResult.UNSUPPORTED;
}
Modified: projects/cluster/ha-server-cache-ispn/trunk/src/test/java/org/jboss/web/tomcat/service/session/distributedcache/ispn/DistributedCacheManagerFactoryTest.java
===================================================================
--- projects/cluster/ha-server-cache-ispn/trunk/src/test/java/org/jboss/web/tomcat/service/session/distributedcache/ispn/DistributedCacheManagerFactoryTest.java 2010-11-01 14:54:52 UTC (rev 109040)
+++ projects/cluster/ha-server-cache-ispn/trunk/src/test/java/org/jboss/web/tomcat/service/session/distributedcache/ispn/DistributedCacheManagerFactoryTest.java 2010-11-01 15:48:56 UTC (rev 109041)
@@ -27,10 +27,7 @@
import org.easymock.EasyMock;
import org.easymock.IMocksControl;
import org.infinispan.AdvancedCache;
-import org.infinispan.Cache;
import org.infinispan.config.Configuration;
-import org.infinispan.manager.CacheContainer;
-import org.infinispan.remoting.transport.Address;
import org.infinispan.transaction.tm.BatchModeTransactionManager;
import org.jboss.ha.ispn.invoker.CacheInvoker;
import org.jboss.metadata.web.jboss.ReplicationConfig;
@@ -87,10 +84,6 @@
@Test
public void getDistributedCacheManager() throws Exception
{
- CacheContainer container = this.control.createMock(CacheContainer.class);
- @SuppressWarnings("unchecked")
- Cache<Address, String> jvmRouteCache = this.control.createMock(Cache.class);
-
ReplicationConfig config = new ReplicationConfig();
ReplicationGranularity granularity = ReplicationGranularity.SESSION;
config.setReplicationGranularity(granularity);
@@ -105,9 +98,6 @@
EasyMock.expect(this.manager.getReplicationConfig()).andReturn(config);
EasyMock.expect(this.storageFactory.createStorage(granularity, this.marshaller)).andReturn(this.storage);
-// EasyMock.expect(this.cache.getCacheManager()).andReturn(container);
-// EasyMock.expect(this.manager.getEngineName()).andReturn("engine");
-// EasyMock.expect(container.<Address, String>getCache("engine")).andReturn(jvmRouteCache);
EasyMock.expect(this.cache.getAdvancedCache()).andReturn(this.cache);
this.control.replay();
Modified: projects/cluster/ha-server-cache-ispn/trunk/src/test/java/org/jboss/web/tomcat/service/session/distributedcache/ispn/DistributedCacheManagerTest.java
===================================================================
--- projects/cluster/ha-server-cache-ispn/trunk/src/test/java/org/jboss/web/tomcat/service/session/distributedcache/ispn/DistributedCacheManagerTest.java 2010-11-01 14:54:52 UTC (rev 109040)
+++ projects/cluster/ha-server-cache-ispn/trunk/src/test/java/org/jboss/web/tomcat/service/session/distributedcache/ispn/DistributedCacheManagerTest.java 2010-11-01 15:48:56 UTC (rev 109041)
@@ -39,7 +39,6 @@
import org.infinispan.notifications.cachelistener.event.CacheEntryActivatedEvent;
import org.infinispan.notifications.cachelistener.event.CacheEntryModifiedEvent;
import org.infinispan.notifications.cachelistener.event.CacheEntryRemovedEvent;
-import org.infinispan.notifications.cachemanagerlistener.event.ViewChangedEvent;
import org.infinispan.remoting.transport.Address;
import org.jboss.ha.framework.server.lock.SharedLocalYieldingClusterLockManager;
import org.jboss.ha.ispn.invoker.CacheInvoker;
@@ -63,7 +62,6 @@
private LocalDistributableSessionManager sessionManager;
private SessionAttributeStorage<OutgoingDistributableSessionData> storage;
private AdvancedCache<String, Map<Object, Object>> sessionCache;
-// private AdvancedCache<Address, String> jvmRouteCache;
private SharedLocalYieldingClusterLockManager lockManager;
private BatchingManager batchingManager;
private CacheInvoker invoker;
@@ -77,12 +75,12 @@
this.sessionManager = this.control.createMock(LocalDistributableSessionManager.class);
this.storage = this.control.createMock(SessionAttributeStorage.class);
this.sessionCache = this.control.createMock(AdvancedCache.class);
-// this.jvmRouteCache = this.control.createMock(AdvancedCache.class);
this.lockManager = this.control.createMock(SharedLocalYieldingClusterLockManager.class);
this.batchingManager = this.control.createMock(BatchingManager.class);
this.invoker = this.control.createMock(CacheInvoker.class);
Configuration configuration = new Configuration();
+ configuration.setCacheMode(CacheMode.DIST_SYNC);
EasyMock.expect(this.sessionCache.getConfiguration()).andReturn(configuration);
@@ -98,21 +96,14 @@
public void start()
{
// Validate starting of cache per cache status
- this.start(ComponentStatus.FAILED, true, CacheMode.REPL_ASYNC, false);
- this.start(ComponentStatus.INITIALIZING, true, CacheMode.REPL_ASYNC, false);
- this.start(ComponentStatus.RUNNING, false, CacheMode.REPL_ASYNC, false);
- this.start(ComponentStatus.STOPPING, true, CacheMode.REPL_ASYNC, false);
- this.start(ComponentStatus.TERMINATED, true, CacheMode.REPL_ASYNC, false);
-
- this.start(ComponentStatus.RUNNING, false, CacheMode.REPL_SYNC, false);
- this.start(ComponentStatus.RUNNING, false, CacheMode.INVALIDATION_SYNC, false);
- this.start(ComponentStatus.RUNNING, false, CacheMode.INVALIDATION_ASYNC, false);
- this.start(ComponentStatus.RUNNING, false, CacheMode.DIST_SYNC, true);
- this.start(ComponentStatus.RUNNING, false, CacheMode.DIST_ASYNC, true);
- this.start(ComponentStatus.RUNNING, false, CacheMode.LOCAL, false);
+ this.start(ComponentStatus.FAILED, true);
+ this.start(ComponentStatus.INITIALIZING, true);
+ this.start(ComponentStatus.RUNNING, false);
+ this.start(ComponentStatus.STOPPING, true);
+ this.start(ComponentStatus.TERMINATED, true);
}
- private void start(ComponentStatus status, boolean startCache, CacheMode mode, boolean distributed)
+ private void start(ComponentStatus status, boolean startCache)
{
EmbeddedCacheManager container = this.control.createMock(EmbeddedCacheManager.class);
@SuppressWarnings("unchecked")
@@ -120,9 +111,6 @@
Address address = this.control.createMock(Address.class);
String jvmRoute = "node0";
- Configuration configuration = new Configuration();
- configuration.setCacheMode(mode);
-
EasyMock.expect(this.sessionCache.getStatus()).andReturn(status);
if (startCache)
@@ -132,22 +120,17 @@
this.sessionCache.addListener(EasyMock.same(this.manager));
- EasyMock.expect(this.sessionCache.getConfiguration()).andReturn(configuration);
+ EasyMock.expect(this.sessionCache.getCacheManager()).andReturn(container);
- if (distributed)
- {
- EasyMock.expect(this.sessionCache.getCacheManager()).andReturn(container);
-
-// container.addListener(EasyMock.same(this.manager));
- container.addListener(EasyMock.anyObject());
-
- EasyMock.expect(container.getAddress()).andReturn(address);
- EasyMock.expect(this.sessionManager.getJvmRoute()).andReturn(jvmRoute);
- EasyMock.expect(this.sessionManager.getEngineName()).andReturn("engine");
- EasyMock.expect(container.<Address, String>getCache("engine")).andReturn(cache);
- EasyMock.expect(cache.putIfAbsent(EasyMock.same(address), EasyMock.same(jvmRoute))).andReturn(null);
- }
+// container.addListener(EasyMock.same(this.manager));
+ container.addListener(EasyMock.anyObject());
+ EasyMock.expect(container.getAddress()).andReturn(address);
+ EasyMock.expect(this.sessionManager.getJvmRoute()).andReturn(jvmRoute);
+ EasyMock.expect(this.sessionManager.getEngineName()).andReturn("engine");
+ EasyMock.expect(container.<Address, String>getCache("engine")).andReturn(cache);
+ EasyMock.expect(cache.putIfAbsent(EasyMock.same(address), EasyMock.same(jvmRoute))).andReturn(null);
+
this.control.replay();
this.manager.start();
@@ -159,30 +142,11 @@
@Test
public void stop()
{
- this.stop(CacheMode.REPL_ASYNC, false);
- this.stop(CacheMode.REPL_SYNC, false);
- this.stop(CacheMode.INVALIDATION_ASYNC, false);
- this.stop(CacheMode.INVALIDATION_SYNC, false);
- this.stop(CacheMode.DIST_ASYNC, true);
- this.stop(CacheMode.DIST_SYNC, true);
- this.stop(CacheMode.LOCAL, false);
- }
-
- private void stop(CacheMode mode, boolean distributed)
- {
EmbeddedCacheManager container = this.control.createMock(EmbeddedCacheManager.class);
- Configuration configuration = new Configuration();
- configuration.setCacheMode(mode);
-
- EasyMock.expect(this.sessionCache.getConfiguration()).andReturn(configuration);
+ EasyMock.expect(this.sessionCache.getCacheManager()).andReturn(container);
- if (distributed)
- {
- EasyMock.expect(this.sessionCache.getCacheManager()).andReturn(container);
-
- container.removeListener(EasyMock.same(this.manager));
- }
+ container.removeListener(EasyMock.anyObject());
this.sessionCache.removeListener(EasyMock.same(this.manager));
this.sessionCache.stop();
@@ -630,7 +594,8 @@
@Test
public void removed()
{
- CacheEntryRemovedEvent event = this.control.createMock(CacheEntryRemovedEvent.class);
+ @SuppressWarnings("unchecked")
+ CacheEntryRemovedEvent<String, Map<Object, Object>> event = this.control.createMock(CacheEntryRemovedEvent.class);
EasyMock.expect(event.isPre()).andReturn(true);
@@ -669,7 +634,8 @@
@Test
public void modified()
{
- CacheEntryModifiedEvent event = this.control.createMock(CacheEntryModifiedEvent.class);
+ @SuppressWarnings("unchecked")
+ CacheEntryModifiedEvent<String, Map<Object, Object>> event = this.control.createMock(CacheEntryModifiedEvent.class);
EasyMock.expect(event.isPre()).andReturn(true);
@@ -733,7 +699,8 @@
@Test
public void activated()
{
- CacheEntryActivatedEvent event = this.control.createMock(CacheEntryActivatedEvent.class);
+ @SuppressWarnings("unchecked")
+ CacheEntryActivatedEvent<String, Map<Object, Object>> event = this.control.createMock(CacheEntryActivatedEvent.class);
EasyMock.expect(event.isPre()).andReturn(true);
More information about the jboss-cvs-commits
mailing list