From 63ca40d63835f8678e5eefca182b3867c0d2f46d Mon Sep 17 00:00:00 2001 From: Julien Viet Date: Fri, 3 May 2019 11:09:58 +0200 Subject: [PATCH] Improve ConnectionPoolTest#testCloseRecycledConnection --- .../io/vertx/core/net/ConnectionPoolTest.java | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/test/java/io/vertx/core/net/ConnectionPoolTest.java b/src/test/java/io/vertx/core/net/ConnectionPoolTest.java index f41ae4641..4d0b46a14 100644 --- a/src/test/java/io/vertx/core/net/ConnectionPoolTest.java +++ b/src/test/java/io/vertx/core/net/ConnectionPoolTest.java @@ -487,6 +487,7 @@ public class ConnectionPoolTest extends VertxTestBase { assertWaitUntil(mgr::closed); } + @Repeat(times = 1000) @Test public void testCloseRecycledConnection() { FakeConnectionProvider connector = new FakeConnectionProvider(); @@ -500,15 +501,11 @@ public class ConnectionPoolTest extends VertxTestBase { FakeWaiter waiter2 = new FakeWaiter(); // Recycle connection mgr.getConnection(waiter2); - // But close it + // Then close it conn.close(); - // We have a race here - if (waiter2.isComplete()) { - // Either the waiter acquires the recycled connection before it's closed - } else { - // Or a connection request happens - conn = connector.assertRequest(); - } + // Either the waiter acquires the recycled connection before it's closed + // Or a connection request happens + assertWaitUntil(() -> waiter2.isComplete() || connector.hasRequests()); } @Test @@ -946,6 +943,10 @@ public class ConnectionPoolTest extends VertxTestBase { return pendingRequests.size(); } + boolean hasRequests() { + return pendingRequests.size() > 0; + } + FakeConnection assertRequest() { waitUntil(() -> pendingRequests.size() > 0); FakeConnection request = pendingRequests.poll();