From 99eb1f9b50e8480026146854c710c4aca40d703e Mon Sep 17 00:00:00 2001 From: lutovich Date: Mon, 5 Dec 2016 14:15:15 +0100 Subject: [PATCH] Fix off-by-one error in max routing failures Previously `LoadBalancer` retried routing table lookup one time more than the configured amount. Relevant setting is `routingFailureLimit`. --- .../driver/internal/cluster/LoadBalancer.java | 2 +- .../neo4j/driver/internal/EventHandler.java | 6 +-- .../internal/cluster/LoadBalancerTest.java | 49 +++++++++++++++++-- 3 files changed, 48 insertions(+), 9 deletions(-) diff --git a/driver/src/main/java/org/neo4j/driver/internal/cluster/LoadBalancer.java b/driver/src/main/java/org/neo4j/driver/internal/cluster/LoadBalancer.java index 17e5406d6f..1a625d351f 100644 --- a/driver/src/main/java/org/neo4j/driver/internal/cluster/LoadBalancer.java +++ b/driver/src/main/java/org/neo4j/driver/internal/cluster/LoadBalancer.java @@ -199,7 +199,7 @@ private ClusterComposition lookupRoutingTable() throws InterruptedException, Ser return cluster; } } - if ( ++failures > settings.maxRoutingFailures ) + if ( ++failures >= settings.maxRoutingFailures ) { throw new ServiceUnavailableException( NO_ROUTERS_AVAILABLE ); } diff --git a/driver/src/test/java/org/neo4j/driver/internal/EventHandler.java b/driver/src/test/java/org/neo4j/driver/internal/EventHandler.java index 53d433f3b3..dc76c4e2b7 100644 --- a/driver/src/test/java/org/neo4j/driver/internal/EventHandler.java +++ b/driver/src/test/java/org/neo4j/driver/internal/EventHandler.java @@ -18,6 +18,8 @@ */ package org.neo4j.driver.internal; +import org.hamcrest.Matcher; + import java.io.PrintStream; import java.io.PrintWriter; import java.lang.reflect.Constructor; @@ -32,8 +34,6 @@ import java.util.concurrent.ConcurrentMap; import java.util.concurrent.CopyOnWriteArrayList; -import org.hamcrest.Matcher; - import org.neo4j.driver.internal.util.MatcherFactory; import org.neo4j.driver.v1.EventLogger; @@ -110,7 +110,7 @@ public final void assertCount( Matcher matcher, Matcher