[jbosscache-commits] JBoss Cache SVN: r5651 - in core/trunk/src: main/java/org/jboss/cache/interceptors and 1 other directories.
jbosscache-commits at lists.jboss.org
jbosscache-commits at lists.jboss.org
Wed Apr 23 10:41:36 EDT 2008
Author: manik.surtani at jboss.com
Date: 2008-04-23 10:41:36 -0400 (Wed, 23 Apr 2008)
New Revision: 5651
Modified:
core/trunk/src/main/java/org/jboss/cache/commands/remote/DataGravitationCleanupCommand.java
core/trunk/src/main/java/org/jboss/cache/interceptors/DataGravitatorInterceptor.java
core/trunk/src/test/java/org/jboss/cache/buddyreplication/BuddyReplicationWithCacheLoaderTest.java
Log:
Fixed data gravitation cleanup
Modified: core/trunk/src/main/java/org/jboss/cache/commands/remote/DataGravitationCleanupCommand.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/commands/remote/DataGravitationCleanupCommand.java 2008-04-23 14:38:02 UTC (rev 5650)
+++ core/trunk/src/main/java/org/jboss/cache/commands/remote/DataGravitationCleanupCommand.java 2008-04-23 14:41:36 UTC (rev 5651)
@@ -143,12 +143,19 @@
private void evictNode(Fqn fqn) throws Throwable
{
- List<Fqn> toEvict = cacheData.getNodesForEviction(fqn, true);
- for (Fqn aFqn : toEvict)
+ if (cacheData.exists(fqn))
{
- EvictNodeCommand evictFqnCommand = new EvictNodeCommand(aFqn);
- invoker.invoke(evictFqnCommand);
+ List<Fqn> toEvict = cacheData.getNodesForEviction(fqn, true);
+ for (Fqn aFqn : toEvict)
+ {
+ EvictNodeCommand evictFqnCommand = commandsFactory.buildEvictFqnCommand(aFqn);
+ invoker.invoke(evictFqnCommand);
+ }
}
+ else
+ {
+ if (trace) log.trace("Not evicting " + fqn + " as it doesn't exist");
+ }
}
public Object accept(InvocationContext ctx, CommandsVisitor handler) throws Throwable
Modified: core/trunk/src/main/java/org/jboss/cache/interceptors/DataGravitatorInterceptor.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/interceptors/DataGravitatorInterceptor.java 2008-04-23 14:38:02 UTC (rev 5650)
+++ core/trunk/src/main/java/org/jboss/cache/interceptors/DataGravitatorInterceptor.java 2008-04-23 14:41:36 UTC (rev 5651)
@@ -77,8 +77,6 @@
private Configuration config;
private CommandsFactory commandsFactory;
private CacheSPI cacheSPI;
- private boolean usingOptimisticLocking;
- private boolean needToCleanup;
@Inject
public void injectComponents(BuddyManager buddyManager, Configuration config, CacheData cacheData, CommandsFactory commandsFactory, CacheSPI cacheSPI)
@@ -94,8 +92,6 @@
public void startInterceptor()
{
syncCommunications = config.getCacheMode() == Configuration.CacheMode.REPL_SYNC || config.getCacheMode() == Configuration.CacheMode.INVALIDATION_SYNC;
- usingOptimisticLocking = config.isNodeLockingOptimistic();
- needToCleanup = config.getBuddyReplicationConfig().isDataGravitationRemoveOnFind();
}
@Override
@@ -195,11 +191,7 @@
// store the gravitated node locally. This will cause it being backed up in the current instance's buddy.
createNode(data.backupData);
- if (needToCleanup)
- {
- // Clean up the previous data owner and backups made in the name of the previous owner.
- cleanBackupData(data, ctx);
- }
+ cleanBackupData(data, ctx);
}
}
else
Modified: core/trunk/src/test/java/org/jboss/cache/buddyreplication/BuddyReplicationWithCacheLoaderTest.java
===================================================================
--- core/trunk/src/test/java/org/jboss/cache/buddyreplication/BuddyReplicationWithCacheLoaderTest.java 2008-04-23 14:38:02 UTC (rev 5650)
+++ core/trunk/src/test/java/org/jboss/cache/buddyreplication/BuddyReplicationWithCacheLoaderTest.java 2008-04-23 14:41:36 UTC (rev 5651)
@@ -90,7 +90,9 @@
if (!autoGravitate)
caches.get(2).getInvocationContext().getOptionOverrides().setForceDataGravitation(true);
+ // should cause a gravitation event
assertEquals(value, caches.get(2).get(fqn, key));
+ cleanupDelay(); // gravitation is async!!
assertNoLocks(caches);
for (int i = 0; i < 3; i++) System.out.println(i + ": " + loaders[i].get(fqn));
@@ -184,7 +186,10 @@
// request data from cache2
if (!autoGravitate)
caches.get(2).getInvocationContext().getOptionOverrides().setForceDataGravitation(true);
+
+ // should cause a gravitation event
assertEquals(value, caches.get(2).get(fqn, key));
+ cleanupDelay(); // gravitation is async!!
// test that data does not exist in cache0
assertTrue("should not exist in cache0", !caches.get(0).exists(fqn));
@@ -351,4 +356,8 @@
cfg.setEvictionConfig(ec);
}
+ private void cleanupDelay()
+ {
+ TestingUtil.sleepThread(250);
+ }
}
More information about the jbosscache-commits
mailing list