diff --git a/driver/src/main/java/org/neo4j/driver/internal/async/pool/ConnectionPoolImpl.java b/driver/src/main/java/org/neo4j/driver/internal/async/pool/ConnectionPoolImpl.java index 8a1dd9be72..c1dd2a4896 100644 --- a/driver/src/main/java/org/neo4j/driver/internal/async/pool/ConnectionPoolImpl.java +++ b/driver/src/main/java/org/neo4j/driver/internal/async/pool/ConnectionPoolImpl.java @@ -30,6 +30,7 @@ import java.util.concurrent.CompletionStage; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; +import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; import java.util.concurrent.atomic.AtomicBoolean; @@ -165,7 +166,10 @@ public CompletionStage close() } finally { - eventLoopGroup().shutdownGracefully(); + // This is an attempt to speed up the shut down procedure of the driver + // Feel free return this back to shutdownGracefully() method with default values + // if this proves troublesome!!! + eventLoopGroup().shutdownGracefully(200, 15_000, TimeUnit.MILLISECONDS); } } return Futures.asCompletionStage( eventLoopGroup().terminationFuture() ) diff --git a/examples/src/test/java/org/neo4j/docs/driver/ExamplesIT.java b/examples/src/test/java/org/neo4j/docs/driver/ExamplesIT.java index bca911dbe3..1135146896 100644 --- a/examples/src/test/java/org/neo4j/docs/driver/ExamplesIT.java +++ b/examples/src/test/java/org/neo4j/docs/driver/ExamplesIT.java @@ -47,6 +47,7 @@ import static java.nio.charset.StandardCharsets.UTF_8; import static java.util.Arrays.asList; import static org.hamcrest.Matchers.containsString; +import static org.hamcrest.Matchers.emptyString; import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.greaterThan; import static org.hamcrest.Matchers.greaterThanOrEqualTo; @@ -462,20 +463,29 @@ void testSlf4jLogging() throws Exception { // log file is defined in logback-test.xml configuration file Path logFile = Paths.get( "target", "test.log" ); - Files.deleteIfExists( logFile ); + if ( Files.exists( logFile ) ) + { + // delete file made this test flaky + // erase content instead + Files.write( logFile, new byte[0] ); + } + + // verify erased + String logFileContent = new String( Files.readAllBytes( logFile ), UTF_8 ); + assertThat( logFileContent, is( emptyString() ) ); + String randomString = UUID.randomUUID().toString(); try ( Slf4jLoggingExample example = new Slf4jLoggingExample( uri, USER, PASSWORD ) ) { - String randomString = UUID.randomUUID().toString(); Object result = example.runReturnQuery( randomString ); assertEquals( randomString, result ); + } + assertTrue( Files.exists( logFile ) ); - assertTrue( Files.exists( logFile ) ); + logFileContent = new String( Files.readAllBytes( logFile ), UTF_8 ); + assertThat( logFileContent, containsString( "RETURN $x" ) ); + assertThat( logFileContent, containsString( randomString ) ); - String logFileContent = new String( Files.readAllBytes( logFile ), UTF_8 ); - assertThat( logFileContent, containsString( "RETURN $x" ) ); - assertThat( logFileContent, containsString( randomString ) ); - } } @Test