This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git
commit 9d9536ff44eda6cd1139c43a783c7f9fb5c78ebc Merge: 1e6dd6b8a7 2ba7aa37f5 Author: Stephen Mallette <[email protected]> AuthorDate: Mon Jun 23 07:29:11 2025 -0400 Merge branch '3.8-dev' CHANGELOG.asciidoc | 1 + .../org/apache/tinkerpop/gremlin/driver/Client.java | 19 +++++++++++++++---- .../gremlin/server/GremlinDriverIntegrateTest.java | 16 +++++++++++++++- 3 files changed, 31 insertions(+), 5 deletions(-) diff --cc gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinDriverIntegrateTest.java index 54e70af717,3f585f4ee8..bdce08b0c8 --- a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinDriverIntegrateTest.java +++ b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinDriverIntegrateTest.java @@@ -763,14 -852,24 +766,25 @@@ public class GremlinDriverIntegrateTes // keepAlive message or the next request, whichever is earlier. In this case, we will simulate the second // scenario by sending a new request on first client. The request would fail (since server is down) and // client should mark the host unavailable. - cluster.connect().init(); + // ... + // at 3.7.4 we don't let cluster level host availability determine for the client if + // NoHostAvailableException should be thrown. we rely on the ground truth of the actually initialization of + // the ConnectionPool and if at least one Host managed to create one. as such, it's more likely now that + // a NoHostAvailableException be thrown in this scenario, rather than it silently succeeding because + // client1 thinks it's still good. + try { + cluster.connect().init(); + fail("Should have thrown NHA"); + } catch (NoHostAvailableException ex) { + + } try { - client1.submit("1+1").all().join(); + client1.submit("g.inject(2)").all().join(); fail("Expecting an exception because the server is shut down."); } catch (Exception ex) { - // ignore the exception + assertTrue(ex.getCause() instanceof TimeoutException); + assertThat(ex.getMessage(), containsString("waiting for connection")); } assertEquals(0, cluster.availableHosts().size());
