diff --git a/src/test/java/redis/clients/jedis/scenario/ActiveActiveFailoverTest.java b/src/test/java/redis/clients/jedis/scenario/ActiveActiveFailoverTest.java index a6deb256eb..2d0dcca490 100644 --- a/src/test/java/redis/clients/jedis/scenario/ActiveActiveFailoverTest.java +++ b/src/test/java/redis/clients/jedis/scenario/ActiveActiveFailoverTest.java @@ -13,6 +13,7 @@ import redis.clients.jedis.exceptions.JedisConnectionException; import redis.clients.jedis.mcf.ClusterSwitchEventArgs; import redis.clients.jedis.mcf.MultiClusterPooledConnectionProvider; +import redis.clients.jedis.mcf.MultiClusterPooledConnectionProvider.Cluster; import redis.clients.jedis.util.ClientTestUtil; import java.io.IOException; @@ -115,6 +116,9 @@ public void accept(ClusterSwitchEventArgs e) { } FailoverReporter reporter = new FailoverReporter(); + provider.setClusterSwitchListener(reporter); + provider.setActiveCluster(endpoint.getHostAndPort(0)); + Cluster cluster1 = provider.getCluster(); MultiDbClient client = MultiDbClient.builder() .multiDbConfig(multiConfig) @@ -135,6 +139,7 @@ public void accept(ClusterSwitchEventArgs e) { int maxTries = 500; int retryingDelay = 5; while (true) { + boolean attempToExecuteOnFailedCluster = false; try { Map executionInfo = new HashMap() { { @@ -142,6 +147,7 @@ public void accept(ClusterSwitchEventArgs e) { put("cluster", reporter.getCurrentClusterName()); } }; + attempToExecuteOnFailedCluster = provider.getCluster() == cluster1; client.xadd("execution_log", StreamEntryID.NEW_ENTRY, executionInfo); executedCommands.incrementAndGet(); @@ -153,7 +159,7 @@ public void accept(ClusterSwitchEventArgs e) { break; } catch (JedisConnectionException e) { - if (reporter.failoverHappened) { + if (reporter.failoverHappened && attempToExecuteOnFailedCluster) { failedCommandsAfterFailover.incrementAndGet(); lastFailedCommandAt.set(Instant.now()); }