[jboss-cvs] JBoss Messaging SVN: r2450 - in trunk/tests/src/org/jboss/test/messaging/jms/clustering: base and 1 other directory.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Mon Feb 26 18:06:41 EST 2007
Author: clebert.suconic at jboss.com
Date: 2007-02-26 18:06:40 -0500 (Mon, 26 Feb 2007)
New Revision: 2450
Modified:
trunk/tests/src/org/jboss/test/messaging/jms/clustering/MergeQueueTest.java
trunk/tests/src/org/jboss/test/messaging/jms/clustering/base/ClusteringTestBase.java
Log:
Fixing test (race condition on failover)
Modified: trunk/tests/src/org/jboss/test/messaging/jms/clustering/MergeQueueTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/jms/clustering/MergeQueueTest.java 2007-02-26 19:25:34 UTC (rev 2449)
+++ trunk/tests/src/org/jboss/test/messaging/jms/clustering/MergeQueueTest.java 2007-02-26 23:06:40 UTC (rev 2450)
@@ -15,6 +15,7 @@
import javax.jms.TextMessage;
import org.jboss.jms.client.JBossConnection;
+import org.jboss.jms.client.FailoverEvent;
import org.jboss.test.messaging.jms.clustering.base.ClusteringTestBase;
import org.jboss.test.messaging.tools.ServerManagement;
@@ -355,8 +356,7 @@
//Now kill the server
-
- ServerManagement.killAndWait(1);
+ waitForFailoverComplete(1, conn1);
//Messages should all be available on node 0
@@ -392,7 +392,6 @@
}
}
}
-
// Fil consumer
/*
@@ -602,9 +601,9 @@
cons1 = null;
//Now kill the server
-
- ServerManagement.killAndWait(1);
+ waitForFailoverComplete(1, conn1);
+
//Messages should all be available on node 0
conn0.start();
Modified: trunk/tests/src/org/jboss/test/messaging/jms/clustering/base/ClusteringTestBase.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/jms/clustering/base/ClusteringTestBase.java 2007-02-26 19:25:34 UTC (rev 2449)
+++ trunk/tests/src/org/jboss/test/messaging/jms/clustering/base/ClusteringTestBase.java 2007-02-26 23:06:40 UTC (rev 2450)
@@ -182,6 +182,46 @@
}
}
+
+ protected void waitForFailoverComplete(int serverID, Connection conn1)
+ throws Exception
+ {
+
+ assertEquals(serverID, ((JBossConnection)conn1).getServerID());
+
+ // register a failover listener
+ SimpleFailoverListener failoverListener = new SimpleFailoverListener();
+ ((JBossConnection)conn1).registerFailoverListener(failoverListener);
+
+ log.debug("killing node " + serverID + " ....");
+
+ ServerManagement.kill(serverID);
+
+ log.info("########");
+ log.info("######## KILLED NODE " + serverID);
+ log.info("########");
+
+ // wait for the client-side failover to complete
+
+ while(true)
+ {
+ FailoverEvent event = failoverListener.getEvent(120000);
+ if (event != null && FailoverEvent.FAILOVER_COMPLETED == event.getType())
+ {
+ break;
+ }
+ if (event == null)
+ {
+ fail("Did not get expected FAILOVER_COMPLETED event");
+ }
+ }
+
+ // failover complete
+ log.info("failover completed");
+ }
+
+
+
/**
* Lookup for the connection with the right serverID. I'm using this method to find the proper
* serverId so I won't relay on loadBalancing policies on testcases.
More information about the jboss-cvs-commits
mailing list