[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