This is an automated email from the ASF dual-hosted git repository. reta pushed a commit to branch 3.6.x-fixes in repository https://gitbox.apache.org/repos/asf/cxf.git
commit df8894bb70b2c81a4ae07a6bcf22c3b2ef09e2ed Author: Andriy Redko <[email protected]> AuthorDate: Wed Jul 10 20:30:46 2024 -0400 Fix flaky testGetGenericBookManyClientsInParallel & testGetGenericBookSingleClientInParallel test cases (under JDK-21 and above) (cherry picked from commit cfee0995b3a8c36b565cdf2f17c5cbe7a402b0a7) (cherry picked from commit 4fc3dc27fd71ffe013222273052de0b97cc73d71) --- .../systest/jaxrs/JAXRS20ClientServerBookTest.java | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRS20ClientServerBookTest.java b/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRS20ClientServerBookTest.java index bfb350b5ca..00a51fc3cc 100644 --- a/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRS20ClientServerBookTest.java +++ b/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRS20ClientServerBookTest.java @@ -99,6 +99,7 @@ import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.greaterThan; import static org.hamcrest.Matchers.hasKey; import static org.hamcrest.Matchers.lessThan; +import static org.hamcrest.Matchers.lessThanOrEqualTo; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; @@ -164,8 +165,11 @@ public class JAXRS20ClientServerBookTest extends AbstractBusClientServerTestBase .mapToObj(id -> threadMXBean.getThreadInfo(id)) .filter(Objects::nonNull) .filter(t -> t.getThreadName().startsWith("HttpClient-")) + .filter(t -> t.getThreadName().endsWith("-SelectorManager")) .count(); + // Capture the number of client threads at start + final long expectedHttpClientThreads = captureHttpClientThreads.get(); final Collection<WebClient> clients = new ArrayList<>(); try { final String target = "http://localhost:" + PORT + "/bookstore/genericbooks/123"; @@ -198,8 +202,8 @@ public class JAXRS20ClientServerBookTest extends AbstractBusClientServerTestBase clients.forEach(WebClient::close); // Since JDK-21, HttpClient Implements AutoCloseable - if (Runtime.version().feature() > 21) { - assertThat(httpClientThreads.get(), equalTo(0L)); + if (Runtime.version().feature() >= 21) { + assertThat(captureHttpClientThreads.get(), lessThanOrEqualTo(expectedHttpClientThreads)); } } @@ -215,10 +219,11 @@ public class JAXRS20ClientServerBookTest extends AbstractBusClientServerTestBase .mapToObj(id -> threadMXBean.getThreadInfo(id)) .filter(Objects::nonNull) .filter(t -> t.getThreadName().startsWith("HttpClient-")) + .filter(t -> t.getThreadName().endsWith("-SelectorManager")) .count(); // Capture the number of client threads at start - final long httpClientThreads = captureHttpClientThreads.get(); + final long expectedHttpClientThreads = captureHttpClientThreads.get(); final WebClient client = WebClient.create(target, true); try { final Collection<Future<?>> futures = new ArrayList<>(); @@ -245,13 +250,13 @@ public class JAXRS20ClientServerBookTest extends AbstractBusClientServerTestBase pool.shutdown(); // Since JDK-21, HttpClient Implements AutoCloseable - if (pool.awaitTermination(2, TimeUnit.MINUTES) && Runtime.version().feature() > 21) { - assertThat(captureHttpClientThreads.get(), equalTo(httpClientThreads)); + if (pool.awaitTermination(2, TimeUnit.MINUTES) && Runtime.version().feature() >= 21) { + assertThat(captureHttpClientThreads.get(), lessThanOrEqualTo(expectedHttpClientThreads)); } else { pool.shutdownNow(); // Since JDK-21, HttpClient Implements AutoCloseable - if (pool.awaitTermination(2, TimeUnit.MINUTES) && Runtime.version().feature() > 21) { - assertThat(captureHttpClientThreads.get(), equalTo(httpClientThreads)); + if (pool.awaitTermination(2, TimeUnit.MINUTES) && Runtime.version().feature() >= 21) { + assertThat(captureHttpClientThreads.get(), lessThanOrEqualTo(expectedHttpClientThreads)); } } }
