Skip to content

Commit cabda50

Browse files
committed
test: wait for Scassandra pool removal after stop
1 parent 9d45182 commit cabda50

1 file changed

Lines changed: 22 additions & 0 deletions

File tree

driver-core/src/test/java/com/datastax/driver/core/ScassandraCluster.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
package com.datastax.driver.core;
1717

1818
import static com.datastax.driver.core.Assertions.assertThat;
19+
import static com.datastax.driver.core.ConditionChecker.check;
1920
import static org.scassandra.cql.MapType.map;
2021
import static org.scassandra.cql.PrimitiveType.BIG_INT;
2122
import static org.scassandra.cql.PrimitiveType.BOOLEAN;
@@ -45,6 +46,7 @@
4546
import java.util.Map;
4647
import java.util.Set;
4748
import java.util.TreeSet;
49+
import java.util.concurrent.Callable;
4850
import java.util.concurrent.TimeUnit;
4951
import org.scassandra.Scassandra;
5052
import org.scassandra.ScassandraFactory;
@@ -328,12 +330,32 @@ public void stopDC(Cluster cluster, int dc) {
328330
public void stop(Cluster cluster, int node) {
329331
logger.debug("Stopping node {}.", node);
330332
Scassandra scassandra = node(node);
333+
Host host = TestUtils.findHost(cluster, node);
331334
try {
332335
scassandra.stop();
333336
} catch (Exception e) {
334337
logger.error("Could not stop node " + scassandra, e);
335338
}
336339
assertThat(cluster).host(node).goesDownWithin(60, TimeUnit.SECONDS);
340+
waitUntilPoolsAreRemoved(cluster, host);
341+
}
342+
343+
private void waitUntilPoolsAreRemoved(final Cluster cluster, final Host host) {
344+
if (host == null) return;
345+
346+
check()
347+
.before(60, TimeUnit.SECONDS)
348+
.that(
349+
new Callable<Boolean>() {
350+
@Override
351+
public Boolean call() {
352+
for (SessionManager session : cluster.manager.sessions) {
353+
if (session.pools.containsKey(host)) return false;
354+
}
355+
return true;
356+
}
357+
})
358+
.becomesTrue();
337359
}
338360

339361
/**

0 commit comments

Comments
 (0)