[infinispan-commits] Infinispan SVN: r899 - trunk/core/src/test/java/org/infinispan/distribution.
infinispan-commits at lists.jboss.org
infinispan-commits at lists.jboss.org
Thu Oct 1 11:36:53 EDT 2009
Author: manik.surtani at jboss.com
Date: 2009-10-01 11:36:53 -0400 (Thu, 01 Oct 2009)
New Revision: 899
Modified:
trunk/core/src/test/java/org/infinispan/distribution/AsyncAPISyncDistTest.java
Log:
Wait for init join sequence to complete
Modified: trunk/core/src/test/java/org/infinispan/distribution/AsyncAPISyncDistTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/distribution/AsyncAPISyncDistTest.java 2009-10-01 13:50:22 UTC (rev 898)
+++ trunk/core/src/test/java/org/infinispan/distribution/AsyncAPISyncDistTest.java 2009-10-01 15:36:53 UTC (rev 899)
@@ -4,12 +4,14 @@
import org.infinispan.config.Configuration;
import org.infinispan.context.Flag;
import org.infinispan.replication.AsyncAPISyncReplTest;
+import org.infinispan.test.TestingUtil;
import org.infinispan.test.data.Key;
import org.infinispan.util.Util;
import org.testng.annotations.Test;
import java.util.List;
import java.util.concurrent.TimeUnit;
+import java.util.concurrent.locks.LockSupport;
@Test(groups = "functional", testName = "distribution.AsyncAPISyncDistTest")
public class AsyncAPISyncDistTest extends AsyncAPISyncReplTest {
@@ -23,8 +25,23 @@
List<Cache<Key, String>> l = createClusteredCaches(2, getClass().getSimpleName(), c);
c1 = l.get(0);
c2 = l.get(1);
+
+ // wait for any rehashing to complete
+ waitForInitRehashToComplete(c1, c2);
}
+ protected void waitForInitRehashToComplete(Cache... caches) {
+ int gracetime = 60000; // 60 seconds?
+ long giveup = System.currentTimeMillis() + gracetime;
+ for (Cache c: caches) {
+ DistributionManagerImpl dmi = (DistributionManagerImpl) TestingUtil.extractComponent(c, DistributionManager.class);
+ while (!dmi.joinComplete) {
+ if (System.currentTimeMillis() > giveup) throw new RuntimeException("Timed out waiting for initial join sequence to complete!");
+ LockSupport.parkNanos(TimeUnit.SECONDS.toNanos(1));
+ }
+ }
+ }
+
@Override
protected void assertOnAllCaches(Key k, String v) {
Object real;
More information about the infinispan-commits
mailing list