[jbosscache-commits] JBoss Cache SVN: r7551 - in core/trunk/src: test/java/org/jboss/cache/buddyreplication and 1 other directories.
jbosscache-commits at lists.jboss.org
jbosscache-commits at lists.jboss.org
Tue Jan 20 16:19:56 EST 2009
Author: mircea.markus
Date: 2009-01-20 16:19:56 -0500 (Tue, 20 Jan 2009)
New Revision: 7551
Modified:
core/trunk/src/main/java/org/jboss/cache/interceptors/LegacyDataGravitatorInterceptor.java
core/trunk/src/test/java/org/jboss/cache/buddyreplication/EvictionOfBuddyBackupsTest.java
core/trunk/src/test/java/org/jboss/cache/buddyreplication/RemoveRootBuddyTest.java
core/trunk/src/test/java/org/jboss/cache/eviction/ExpirationPolicyTest.java
Log:
more strict replication control
Modified: core/trunk/src/main/java/org/jboss/cache/interceptors/LegacyDataGravitatorInterceptor.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/interceptors/LegacyDataGravitatorInterceptor.java 2009-01-20 20:14:22 UTC (rev 7550)
+++ core/trunk/src/main/java/org/jboss/cache/interceptors/LegacyDataGravitatorInterceptor.java 2009-01-20 21:19:56 UTC (rev 7551)
@@ -355,7 +355,7 @@
GravitateDataCommand command = commandsFactory.buildGravitateDataCommand(fqn, searchSubtrees);
// doing a GET_ALL is crappy but necessary since JGroups' GET_FIRST could return null results from nodes that do
// not have either the primary OR backup, and stop polling other valid nodes.
- List resps = rpcManager.callRemoteMethods(null, command, GroupRequest.GET_ALL, buddyManager.getBuddyCommunicationTimeout(), new ResponseValidityFilter(), false);
+ List resps = rpcManager.callRemoteMethods(null, command, GroupRequest.GET_ALL, buddyManager.getBuddyCommunicationTimeout(), new ResponseValidityFilter(rpcManager.getMembers().size(), rpcManager.getLocalAddress()), false);
if (trace) log.trace("got responses " + resps);
@@ -460,13 +460,18 @@
public static class ResponseValidityFilter implements RspFilter
{
private boolean validResponseFound;
+ int memberCount;
+ public ResponseValidityFilter(int memberCount, Address localAddress)
+ {
+ this.memberCount = memberCount;
+ }
+
public boolean isAcceptable(Object object, Address address)
{
if (object instanceof GravitateResult)
{
- GravitateResult response = (GravitateResult) object;
- validResponseFound = response.isDataFound();
+ memberCount--;
}
// always return true to make sure a response is logged by the JGroups RpcDispatcher.
return true;
@@ -474,7 +479,7 @@
public boolean needMoreResponses()
{
- return !validResponseFound;
+ return memberCount > 1;
}
}
}
Modified: core/trunk/src/test/java/org/jboss/cache/buddyreplication/EvictionOfBuddyBackupsTest.java
===================================================================
--- core/trunk/src/test/java/org/jboss/cache/buddyreplication/EvictionOfBuddyBackupsTest.java 2009-01-20 20:14:22 UTC (rev 7550)
+++ core/trunk/src/test/java/org/jboss/cache/buddyreplication/EvictionOfBuddyBackupsTest.java 2009-01-20 21:19:56 UTC (rev 7551)
@@ -3,12 +3,14 @@
import org.jboss.cache.CacheSPI;
import org.jboss.cache.Fqn;
import org.jboss.cache.UnitTestCacheFactory;
+import org.jboss.cache.commands.write.PutKeyValueCommand;
import org.jboss.cache.config.EvictionConfig;
import org.jboss.cache.config.EvictionRegionConfig;
import org.jboss.cache.eviction.LRUAlgorithmConfig;
import org.jboss.cache.eviction.NullEvictionAlgorithmConfig;
import org.jboss.cache.util.TestingUtil;
import org.jboss.cache.util.internals.EvictionController;
+import org.jboss.cache.util.internals.replicationlisteners.ReplicationListener;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
@@ -34,8 +36,9 @@
cache1.start();
ec1 = new EvictionController(cache1);
- cache2 = (CacheSPI) new UnitTestCacheFactory<Object, Object>().createCache(cache1.getConfiguration().clone(), getClass());
- ec2 = new EvictionController(cache2);
+ cache2 = (CacheSPI) new UnitTestCacheFactory<Object, Object>().createCache(cache1.getConfiguration().clone(), getClass());
+ ec2 = new EvictionController(cache2);
+ waitForSingleBuddy(cache1, cache2);
TestingUtil.blockUntilViewsReceived(60000, cache1, cache2);
}
@@ -66,7 +69,11 @@
public void testEvictionOfBackupRegions() throws Exception
{
+ ReplicationListener replicationListener2 = ReplicationListener.getReplicationListener(cache2);
+ replicationListener2.expect(PutKeyValueCommand.class);
cache1.put(fqn, "k", "v");
+ replicationListener2.waitForReplicationToOccur();
+
assert cache1.peek(fqn, false, false) != null : "Node should exist";
assert cache2.peek(fqnTransformer.getBackupFqn(cache1.getLocalAddress(), fqn), false, false) != null : "Node should exist on backup";
Modified: core/trunk/src/test/java/org/jboss/cache/buddyreplication/RemoveRootBuddyTest.java
===================================================================
--- core/trunk/src/test/java/org/jboss/cache/buddyreplication/RemoveRootBuddyTest.java 2009-01-20 20:14:22 UTC (rev 7550)
+++ core/trunk/src/test/java/org/jboss/cache/buddyreplication/RemoveRootBuddyTest.java 2009-01-20 21:19:56 UTC (rev 7551)
@@ -22,6 +22,7 @@
{
CacheSPI cache1 = createCache(false, 1, "myBuddyPoolReplicationGroup", false, true, true);
CacheSPI cache2 = createCache(false, 1, "myBuddyPoolReplicationGroup", false, true, true);
+ waitForSingleBuddy(cache1, cache2);
ReplicationListener replicationListener2 = ReplicationListener.getReplicationListener(cache2);
List<CacheSPI<Object, Object>> caches = new ArrayList<CacheSPI<Object, Object>>(2);
cachesTL.set(caches);
Modified: core/trunk/src/test/java/org/jboss/cache/eviction/ExpirationPolicyTest.java
===================================================================
--- core/trunk/src/test/java/org/jboss/cache/eviction/ExpirationPolicyTest.java 2009-01-20 20:14:22 UTC (rev 7550)
+++ core/trunk/src/test/java/org/jboss/cache/eviction/ExpirationPolicyTest.java 2009-01-20 21:19:56 UTC (rev 7551)
@@ -96,6 +96,7 @@
}
}
+ @Test (invocationCount = 5, successPercentage = 80)
public void testEviction() throws Exception
{
cache.put(fqn1, ExpirationAlgorithmConfig.EXPIRATION_KEY, future);
More information about the jbosscache-commits
mailing list