From 679473dbd7e65e7c2a4247a9c5bf686efba03b9d Mon Sep 17 00:00:00 2001 From: Guillaume Nodet Date: Fri, 13 Mar 2026 19:50:02 +0100 Subject: [PATCH 1/3] Increase Awaitility timeout in tracing tests from 5s to 10s The 5-second timeout introduced in #2962 is still not sufficient for CI environments under load. Tracing tests like testThatNewSpanIsCreatedOnClientTimeout continue to fail with ConditionTimeoutException at the 5-second mark. Increase all Awaitility timeouts to 10 seconds across all tracing test files. Co-Authored-By: Claude Opus 4.6 --- .../brave/jaxrs/AbstractBraveTracingTest.java | 6 +++--- .../brave/jaxws/AbstractBraveTracingTest.java | 2 +- .../opentelemetry/OpenTelemetryTracingTest.java | 14 +++++++------- .../opentracing/OpenTracingTracingTest.java | 14 +++++++------- .../opentelemetry/OpenTelemetryTracingTest.java | 4 ++-- .../opentracing/OpenTracingTracingTest.java | 4 ++-- 6 files changed, 22 insertions(+), 22 deletions(-) diff --git a/systests/tracing/src/test/java/org/apache/cxf/systest/brave/jaxrs/AbstractBraveTracingTest.java b/systests/tracing/src/test/java/org/apache/cxf/systest/brave/jaxrs/AbstractBraveTracingTest.java index a7db3b275a7..741bd1aebe4 100644 --- a/systests/tracing/src/test/java/org/apache/cxf/systest/brave/jaxrs/AbstractBraveTracingTest.java +++ b/systests/tracing/src/test/java/org/apache/cxf/systest/brave/jaxrs/AbstractBraveTracingTest.java @@ -265,7 +265,7 @@ public void testThatProvidedSpanIsNotClosedWhenActive() throws MalformedURLExcep } // Await till flush happens, usually a second is enough - await().atMost(Duration.ofSeconds(5L)).until(()-> TestSpanHandler.getAllSpans().size() == 4); + await().atMost(Duration.ofSeconds(10L)).until(()-> TestSpanHandler.getAllSpans().size() == 4); assertThat(TestSpanHandler.getAllSpans().size(), equalTo(4)); assertThat(TestSpanHandler.getAllSpans().get(3).name(), equalTo("test span")); @@ -292,7 +292,7 @@ public void testThatProvidedSpanIsNotDetachedWhenActiveUsingAsyncClient() throws } // Await till flush happens, usually a second is enough - await().atMost(Duration.ofSeconds(5L)).until(()-> TestSpanHandler.getAllSpans().size() == 4); + await().atMost(Duration.ofSeconds(10L)).until(()-> TestSpanHandler.getAllSpans().size() == 4); assertThat(TestSpanHandler.getAllSpans().size(), equalTo(4)); assertThat(TestSpanHandler.getAllSpans().get(3).name(), equalTo("test span")); @@ -340,7 +340,7 @@ public void testThatNewSpanIsCreatedOnClientTimeout() { try { client.get(); } finally { - await().atMost(Duration.ofSeconds(5L)).until(()-> TestSpanHandler.getAllSpans().size() == 2); + await().atMost(Duration.ofSeconds(10L)).until(()-> TestSpanHandler.getAllSpans().size() == 2); assertThat(TestSpanHandler.getAllSpans().size(), equalTo(2)); assertThat(TestSpanHandler.getAllSpans().get(0).name(), equalTo("GET " + client.getCurrentURI())); assertThat(TestSpanHandler.getAllSpans().get(0).tags(), hasKey("error")); diff --git a/systests/tracing/src/test/java/org/apache/cxf/systest/brave/jaxws/AbstractBraveTracingTest.java b/systests/tracing/src/test/java/org/apache/cxf/systest/brave/jaxws/AbstractBraveTracingTest.java index 64f6ebbaba1..54a13558cf8 100644 --- a/systests/tracing/src/test/java/org/apache/cxf/systest/brave/jaxws/AbstractBraveTracingTest.java +++ b/systests/tracing/src/test/java/org/apache/cxf/systest/brave/jaxws/AbstractBraveTracingTest.java @@ -204,7 +204,7 @@ public void testThatNewInnerSpanIsCreatedOneway() throws Exception { service.orderBooks(); // Await till flush happens, usually every second - await().atMost(Duration.ofSeconds(5L)).until(() -> TestSpanHandler.getAllSpans().size() == 2); + await().atMost(Duration.ofSeconds(10L)).until(() -> TestSpanHandler.getAllSpans().size() == 2); assertThat(TestSpanHandler.getAllSpans().get(0).name(), equalTo("POST /BookStore")); assertThat(TestSpanHandler.getAllSpans().get(1).name(), diff --git a/systests/tracing/src/test/java/org/apache/cxf/systest/jaxrs/tracing/opentelemetry/OpenTelemetryTracingTest.java b/systests/tracing/src/test/java/org/apache/cxf/systest/jaxrs/tracing/opentelemetry/OpenTelemetryTracingTest.java index 6b218a49df3..919fd777fe2 100644 --- a/systests/tracing/src/test/java/org/apache/cxf/systest/jaxrs/tracing/opentelemetry/OpenTelemetryTracingTest.java +++ b/systests/tracing/src/test/java/org/apache/cxf/systest/jaxrs/tracing/opentelemetry/OpenTelemetryTracingTest.java @@ -257,7 +257,7 @@ public void testThatNewInnerSpanIsCreatedUsingAsyncInvocation() throws Interrupt final Response r = withTrace(createWebClient("/bookstore/books/async")).get(); assertEquals(Status.OK.getStatusCode(), r.getStatus()); - await().atMost(Duration.ofSeconds(5L)).until(() -> otelRule.getSpans().size() == 2); + await().atMost(Duration.ofSeconds(10L)).until(() -> otelRule.getSpans().size() == 2); final List spans = getSpansSorted(); assertThat(spans.size(), equalTo(2)); @@ -287,7 +287,7 @@ public void testThatNewSpanIsCreatedUsingAsyncInvocation() throws InterruptedExc final Response r = createWebClient("/bookstore/books/async").get(); assertEquals(Status.OK.getStatusCode(), r.getStatus()); - await().atMost(Duration.ofSeconds(5L)).until(() -> otelRule.getSpans().size() == 2); + await().atMost(Duration.ofSeconds(10L)).until(() -> otelRule.getSpans().size() == 2); final List spans = getSpansSorted(); assertThat(spans.size(), equalTo(2)); @@ -303,7 +303,7 @@ public void testThatNewSpanIsCreatedWhenNotProvidedUsingAsyncClient() throws Exc final Response r = client.async().get().get(1L, TimeUnit.SECONDS); assertEquals(Status.OK.getStatusCode(), r.getStatus()); - await().atMost(Duration.ofSeconds(5L)).until(() -> otelRule.getSpans().size() == 3); + await().atMost(Duration.ofSeconds(10L)).until(() -> otelRule.getSpans().size() == 3); assertThat(otelRule.getSpans().size(), equalTo(3)); assertThat(otelRule.getSpans().get(0).getName(), equalTo("Get Books")); @@ -373,7 +373,7 @@ public void testThatProvidedSpanIsNotClosedWhenActive() throws MalformedURLExcep } // Await till flush happens, usually every second - await().atMost(Duration.ofSeconds(5L)).until(() -> otelRule.getSpans().size() == 4); + await().atMost(Duration.ofSeconds(10L)).until(() -> otelRule.getSpans().size() == 4); assertThat(otelRule.getSpans().size(), equalTo(4)); assertThat(otelRule.getSpans().get(3).getName(), equalTo("test span")); @@ -392,7 +392,7 @@ public void testThatProvidedSpanIsNotDetachedWhenActiveUsingAsyncClient() throws assertThat(Span.current().getSpanContext().getSpanId(), equalTo(span.getSpanContext().getSpanId())); - await().atMost(Duration.ofSeconds(5L)).until(() -> otelRule.getSpans().size() == 3); + await().atMost(Duration.ofSeconds(10L)).until(() -> otelRule.getSpans().size() == 3); assertThat(otelRule.getSpans().size(), equalTo(3)); assertThat(otelRule.getSpans().get(0).getName(), equalTo("Get Books")); @@ -406,7 +406,7 @@ public void testThatProvidedSpanIsNotDetachedWhenActiveUsingAsyncClient() throws } // Await till flush happens, usually every second - await().atMost(Duration.ofSeconds(5L)).until(() -> otelRule.getSpans().size() == 4); + await().atMost(Duration.ofSeconds(10L)).until(() -> otelRule.getSpans().size() == 4); assertThat(otelRule.getSpans().size(), equalTo(4)); assertThat(otelRule.getSpans().get(3).getName(), equalTo("test span")); @@ -443,7 +443,7 @@ public void testThatNewSpanIsCreatedOnClientTimeout() { try { client.get(); } finally { - await().atMost(Duration.ofSeconds(5L)).until(() -> otelRule.getSpans().size() == 2); + await().atMost(Duration.ofSeconds(10L)).until(() -> otelRule.getSpans().size() == 2); assertThat(otelRule.getSpans().toString(), otelRule.getSpans().size(), equalTo(2)); assertThat(otelRule.getSpans().get(0).getName(), equalTo("GET " + client.getCurrentURI())); assertThat(otelRule.getSpans().get(0).getStatus().getStatusCode(), equalTo(StatusCode.ERROR)); diff --git a/systests/tracing/src/test/java/org/apache/cxf/systest/jaxrs/tracing/opentracing/OpenTracingTracingTest.java b/systests/tracing/src/test/java/org/apache/cxf/systest/jaxrs/tracing/opentracing/OpenTracingTracingTest.java index 6566e213582..c8e3eea60f0 100644 --- a/systests/tracing/src/test/java/org/apache/cxf/systest/jaxrs/tracing/opentracing/OpenTracingTracingTest.java +++ b/systests/tracing/src/test/java/org/apache/cxf/systest/jaxrs/tracing/opentracing/OpenTracingTracingTest.java @@ -199,7 +199,7 @@ public void testThatNewInnerSpanIsCreatedUsingAsyncInvocation() throws Interrupt final Response r = withTrace(createWebClient("/bookstore/books/async"), spanId).get(); assertEquals(Status.OK.getStatusCode(), r.getStatus()); - await().atMost(Duration.ofSeconds(5L)).until(()-> REPORTER.getSpans().size() == 2); + await().atMost(Duration.ofSeconds(10L)).until(()-> REPORTER.getSpans().size() == 2); final List spans = getSpansSorted(); assertThat(spans.size(), equalTo(2)); @@ -226,7 +226,7 @@ public void testThatNewSpanIsCreatedUsingAsyncInvocation() throws InterruptedExc final Response r = createWebClient("/bookstore/books/async").get(); assertEquals(Status.OK.getStatusCode(), r.getStatus()); - await().atMost(Duration.ofSeconds(5L)).until(()-> REPORTER.getSpans().size() == 2); + await().atMost(Duration.ofSeconds(10L)).until(()-> REPORTER.getSpans().size() == 2); final List spans = getSpansSorted(); assertThat(spans.size(), equalTo(2)); @@ -241,7 +241,7 @@ public void testThatNewSpanIsCreatedWhenNotProvidedUsingAsyncClient() throws Exc final Response r = client.async().get().get(1L, TimeUnit.SECONDS); assertEquals(Status.OK.getStatusCode(), r.getStatus()); - await().atMost(Duration.ofSeconds(5L)).until(()-> REPORTER.getSpans().size() == 3); + await().atMost(Duration.ofSeconds(10L)).until(()-> REPORTER.getSpans().size() == 3); assertThat(REPORTER.getSpans().size(), equalTo(3)); assertThat(REPORTER.getSpans().get(0).getOperationName(), equalTo("Get Books")); @@ -325,7 +325,7 @@ public void testThatProvidedSpanIsNotClosedWhenActive() throws MalformedURLExcep } // Await till flush happens, usually every second - await().atMost(Duration.ofSeconds(5L)).until(()-> REPORTER.getSpans().size() == 4); + await().atMost(Duration.ofSeconds(10L)).until(()-> REPORTER.getSpans().size() == 4); assertThat(REPORTER.getSpans().size(), equalTo(4)); assertThat(REPORTER.getSpans().get(3).getOperationName(), equalTo("test span")); @@ -342,7 +342,7 @@ public void testThatProvidedSpanIsNotDetachedWhenActiveUsingAsyncClient() throws assertEquals(Status.OK.getStatusCode(), r.getStatus()); assertThat(tracer.activeSpan().context(), equalTo(span.context())); - await().atMost(Duration.ofSeconds(5L)).until(()-> REPORTER.getSpans().size() == 3); + await().atMost(Duration.ofSeconds(10L)).until(()-> REPORTER.getSpans().size() == 3); assertThat(REPORTER.getSpans().size(), equalTo(3)); assertThat(REPORTER.getSpans().get(0).getOperationName(), equalTo("Get Books")); @@ -356,7 +356,7 @@ public void testThatProvidedSpanIsNotDetachedWhenActiveUsingAsyncClient() throws } // Await till flush happens, usually every second - await().atMost(Duration.ofSeconds(5L)).until(()-> REPORTER.getSpans().size() == 4); + await().atMost(Duration.ofSeconds(10L)).until(()-> REPORTER.getSpans().size() == 4); assertThat(REPORTER.getSpans().size(), equalTo(4)); assertThat(REPORTER.getSpans().get(3).getOperationName(), equalTo("test span")); @@ -391,7 +391,7 @@ public void testThatNewSpanIsCreatedOnClientTimeout() { try { client.get(); } finally { - await().atMost(Duration.ofSeconds(5L)).until(()-> REPORTER.getSpans().size() == 2); + await().atMost(Duration.ofSeconds(10L)).until(()-> REPORTER.getSpans().size() == 2); assertThat(REPORTER.getSpans().toString(), REPORTER.getSpans().size(), equalTo(2)); assertThat(REPORTER.getSpans().get(0).getOperationName(), equalTo("GET " + client.getCurrentURI())); assertThat(REPORTER.getSpans().get(0).getTags(), hasItem(Tags.ERROR.getKey(), Boolean.TRUE)); diff --git a/systests/tracing/src/test/java/org/apache/cxf/systest/jaxws/tracing/opentelemetry/OpenTelemetryTracingTest.java b/systests/tracing/src/test/java/org/apache/cxf/systest/jaxws/tracing/opentelemetry/OpenTelemetryTracingTest.java index 295ae79fd79..b41c42b8996 100644 --- a/systests/tracing/src/test/java/org/apache/cxf/systest/jaxws/tracing/opentelemetry/OpenTelemetryTracingTest.java +++ b/systests/tracing/src/test/java/org/apache/cxf/systest/jaxws/tracing/opentelemetry/OpenTelemetryTracingTest.java @@ -247,7 +247,7 @@ public void testThatProvidedSpanIsNotClosedWhenActive() throws Exception { } // Await till flush happens, usually every second - await().atMost(Duration.ofSeconds(5L)).until(() -> otelRule.getSpans().size() == 4); + await().atMost(Duration.ofSeconds(10L)).until(() -> otelRule.getSpans().size() == 4); assertThat(otelRule.getSpans().size(), equalTo(4)); assertThat(otelRule.getSpans().get(3).getName(), equalTo("test span")); @@ -331,7 +331,7 @@ public void testThatNewInnerSpanIsCreatedOneway() throws Exception { service.orderBooks(); // Await till flush happens, usually every second - await().atMost(Duration.ofSeconds(5L)).until(() -> otelRule.getSpans().size() == 2); + await().atMost(Duration.ofSeconds(10L)).until(() -> otelRule.getSpans().size() == 2); assertThat(otelRule.getSpans().get(0).getName(), equalTo("POST /BookStore")); assertThat(otelRule.getSpans().get(1).getName(), diff --git a/systests/tracing/src/test/java/org/apache/cxf/systest/jaxws/tracing/opentracing/OpenTracingTracingTest.java b/systests/tracing/src/test/java/org/apache/cxf/systest/jaxws/tracing/opentracing/OpenTracingTracingTest.java index bdbdceb6f06..ab0103acc30 100644 --- a/systests/tracing/src/test/java/org/apache/cxf/systest/jaxws/tracing/opentracing/OpenTracingTracingTest.java +++ b/systests/tracing/src/test/java/org/apache/cxf/systest/jaxws/tracing/opentracing/OpenTracingTracingTest.java @@ -178,7 +178,7 @@ public void testThatProvidedSpanIsNotClosedWhenActive() throws Exception { } // Await till flush happens, usually every second - await().atMost(Duration.ofSeconds(5L)).until(()-> REPORTER.getSpans().size() == 4); + await().atMost(Duration.ofSeconds(10L)).until(()-> REPORTER.getSpans().size() == 4); assertThat(REPORTER.getSpans().size(), equalTo(4)); assertThat(REPORTER.getSpans().get(3).getOperationName(), equalTo("test span")); @@ -234,7 +234,7 @@ public void testThatNewInnerSpanIsCreatedOneway() throws Exception { service.orderBooks(); // Await till flush happens, usually every second - await().atMost(Duration.ofSeconds(5L)).until(() -> REPORTER.getSpans().size() == 2); + await().atMost(Duration.ofSeconds(10L)).until(() -> REPORTER.getSpans().size() == 2); assertThat(REPORTER.getSpans().get(0).getOperationName(), equalTo("POST /BookStore")); assertThat(REPORTER.getSpans().get(1).getOperationName(), From 6952a07d4291780bf7df9294b4bc155233dc7c81 Mon Sep 17 00:00:00 2001 From: Guillaume Nodet Date: Thu, 26 Mar 2026 14:13:52 +0100 Subject: [PATCH 2/3] Increase Awaitility timeout in tracing tests from 10s to 30s Even the 10s timeout was observed failing in CI (run 23065827441). Analysis of recent builds shows the 5s ConditionTimeoutException occurs in virtually every CI run. Use 30s to provide sufficient headroom for loaded CI environments while still catching genuine hangs. Co-Authored-By: Claude Opus 4.6 --- .../brave/jaxrs/AbstractBraveTracingTest.java | 6 +++--- .../brave/jaxws/AbstractBraveTracingTest.java | 2 +- .../opentelemetry/OpenTelemetryTracingTest.java | 14 +++++++------- .../opentracing/OpenTracingTracingTest.java | 14 +++++++------- .../opentelemetry/OpenTelemetryTracingTest.java | 4 ++-- .../opentracing/OpenTracingTracingTest.java | 4 ++-- 6 files changed, 22 insertions(+), 22 deletions(-) diff --git a/systests/tracing/src/test/java/org/apache/cxf/systest/brave/jaxrs/AbstractBraveTracingTest.java b/systests/tracing/src/test/java/org/apache/cxf/systest/brave/jaxrs/AbstractBraveTracingTest.java index 741bd1aebe4..ae188385299 100644 --- a/systests/tracing/src/test/java/org/apache/cxf/systest/brave/jaxrs/AbstractBraveTracingTest.java +++ b/systests/tracing/src/test/java/org/apache/cxf/systest/brave/jaxrs/AbstractBraveTracingTest.java @@ -265,7 +265,7 @@ public void testThatProvidedSpanIsNotClosedWhenActive() throws MalformedURLExcep } // Await till flush happens, usually a second is enough - await().atMost(Duration.ofSeconds(10L)).until(()-> TestSpanHandler.getAllSpans().size() == 4); + await().atMost(Duration.ofSeconds(30L)).until(()-> TestSpanHandler.getAllSpans().size() == 4); assertThat(TestSpanHandler.getAllSpans().size(), equalTo(4)); assertThat(TestSpanHandler.getAllSpans().get(3).name(), equalTo("test span")); @@ -292,7 +292,7 @@ public void testThatProvidedSpanIsNotDetachedWhenActiveUsingAsyncClient() throws } // Await till flush happens, usually a second is enough - await().atMost(Duration.ofSeconds(10L)).until(()-> TestSpanHandler.getAllSpans().size() == 4); + await().atMost(Duration.ofSeconds(30L)).until(()-> TestSpanHandler.getAllSpans().size() == 4); assertThat(TestSpanHandler.getAllSpans().size(), equalTo(4)); assertThat(TestSpanHandler.getAllSpans().get(3).name(), equalTo("test span")); @@ -340,7 +340,7 @@ public void testThatNewSpanIsCreatedOnClientTimeout() { try { client.get(); } finally { - await().atMost(Duration.ofSeconds(10L)).until(()-> TestSpanHandler.getAllSpans().size() == 2); + await().atMost(Duration.ofSeconds(30L)).until(()-> TestSpanHandler.getAllSpans().size() == 2); assertThat(TestSpanHandler.getAllSpans().size(), equalTo(2)); assertThat(TestSpanHandler.getAllSpans().get(0).name(), equalTo("GET " + client.getCurrentURI())); assertThat(TestSpanHandler.getAllSpans().get(0).tags(), hasKey("error")); diff --git a/systests/tracing/src/test/java/org/apache/cxf/systest/brave/jaxws/AbstractBraveTracingTest.java b/systests/tracing/src/test/java/org/apache/cxf/systest/brave/jaxws/AbstractBraveTracingTest.java index 54a13558cf8..a03c2cce615 100644 --- a/systests/tracing/src/test/java/org/apache/cxf/systest/brave/jaxws/AbstractBraveTracingTest.java +++ b/systests/tracing/src/test/java/org/apache/cxf/systest/brave/jaxws/AbstractBraveTracingTest.java @@ -204,7 +204,7 @@ public void testThatNewInnerSpanIsCreatedOneway() throws Exception { service.orderBooks(); // Await till flush happens, usually every second - await().atMost(Duration.ofSeconds(10L)).until(() -> TestSpanHandler.getAllSpans().size() == 2); + await().atMost(Duration.ofSeconds(30L)).until(() -> TestSpanHandler.getAllSpans().size() == 2); assertThat(TestSpanHandler.getAllSpans().get(0).name(), equalTo("POST /BookStore")); assertThat(TestSpanHandler.getAllSpans().get(1).name(), diff --git a/systests/tracing/src/test/java/org/apache/cxf/systest/jaxrs/tracing/opentelemetry/OpenTelemetryTracingTest.java b/systests/tracing/src/test/java/org/apache/cxf/systest/jaxrs/tracing/opentelemetry/OpenTelemetryTracingTest.java index 919fd777fe2..ab5f400d71b 100644 --- a/systests/tracing/src/test/java/org/apache/cxf/systest/jaxrs/tracing/opentelemetry/OpenTelemetryTracingTest.java +++ b/systests/tracing/src/test/java/org/apache/cxf/systest/jaxrs/tracing/opentelemetry/OpenTelemetryTracingTest.java @@ -257,7 +257,7 @@ public void testThatNewInnerSpanIsCreatedUsingAsyncInvocation() throws Interrupt final Response r = withTrace(createWebClient("/bookstore/books/async")).get(); assertEquals(Status.OK.getStatusCode(), r.getStatus()); - await().atMost(Duration.ofSeconds(10L)).until(() -> otelRule.getSpans().size() == 2); + await().atMost(Duration.ofSeconds(30L)).until(() -> otelRule.getSpans().size() == 2); final List spans = getSpansSorted(); assertThat(spans.size(), equalTo(2)); @@ -287,7 +287,7 @@ public void testThatNewSpanIsCreatedUsingAsyncInvocation() throws InterruptedExc final Response r = createWebClient("/bookstore/books/async").get(); assertEquals(Status.OK.getStatusCode(), r.getStatus()); - await().atMost(Duration.ofSeconds(10L)).until(() -> otelRule.getSpans().size() == 2); + await().atMost(Duration.ofSeconds(30L)).until(() -> otelRule.getSpans().size() == 2); final List spans = getSpansSorted(); assertThat(spans.size(), equalTo(2)); @@ -303,7 +303,7 @@ public void testThatNewSpanIsCreatedWhenNotProvidedUsingAsyncClient() throws Exc final Response r = client.async().get().get(1L, TimeUnit.SECONDS); assertEquals(Status.OK.getStatusCode(), r.getStatus()); - await().atMost(Duration.ofSeconds(10L)).until(() -> otelRule.getSpans().size() == 3); + await().atMost(Duration.ofSeconds(30L)).until(() -> otelRule.getSpans().size() == 3); assertThat(otelRule.getSpans().size(), equalTo(3)); assertThat(otelRule.getSpans().get(0).getName(), equalTo("Get Books")); @@ -373,7 +373,7 @@ public void testThatProvidedSpanIsNotClosedWhenActive() throws MalformedURLExcep } // Await till flush happens, usually every second - await().atMost(Duration.ofSeconds(10L)).until(() -> otelRule.getSpans().size() == 4); + await().atMost(Duration.ofSeconds(30L)).until(() -> otelRule.getSpans().size() == 4); assertThat(otelRule.getSpans().size(), equalTo(4)); assertThat(otelRule.getSpans().get(3).getName(), equalTo("test span")); @@ -392,7 +392,7 @@ public void testThatProvidedSpanIsNotDetachedWhenActiveUsingAsyncClient() throws assertThat(Span.current().getSpanContext().getSpanId(), equalTo(span.getSpanContext().getSpanId())); - await().atMost(Duration.ofSeconds(10L)).until(() -> otelRule.getSpans().size() == 3); + await().atMost(Duration.ofSeconds(30L)).until(() -> otelRule.getSpans().size() == 3); assertThat(otelRule.getSpans().size(), equalTo(3)); assertThat(otelRule.getSpans().get(0).getName(), equalTo("Get Books")); @@ -406,7 +406,7 @@ public void testThatProvidedSpanIsNotDetachedWhenActiveUsingAsyncClient() throws } // Await till flush happens, usually every second - await().atMost(Duration.ofSeconds(10L)).until(() -> otelRule.getSpans().size() == 4); + await().atMost(Duration.ofSeconds(30L)).until(() -> otelRule.getSpans().size() == 4); assertThat(otelRule.getSpans().size(), equalTo(4)); assertThat(otelRule.getSpans().get(3).getName(), equalTo("test span")); @@ -443,7 +443,7 @@ public void testThatNewSpanIsCreatedOnClientTimeout() { try { client.get(); } finally { - await().atMost(Duration.ofSeconds(10L)).until(() -> otelRule.getSpans().size() == 2); + await().atMost(Duration.ofSeconds(30L)).until(() -> otelRule.getSpans().size() == 2); assertThat(otelRule.getSpans().toString(), otelRule.getSpans().size(), equalTo(2)); assertThat(otelRule.getSpans().get(0).getName(), equalTo("GET " + client.getCurrentURI())); assertThat(otelRule.getSpans().get(0).getStatus().getStatusCode(), equalTo(StatusCode.ERROR)); diff --git a/systests/tracing/src/test/java/org/apache/cxf/systest/jaxrs/tracing/opentracing/OpenTracingTracingTest.java b/systests/tracing/src/test/java/org/apache/cxf/systest/jaxrs/tracing/opentracing/OpenTracingTracingTest.java index c8e3eea60f0..afc382dd853 100644 --- a/systests/tracing/src/test/java/org/apache/cxf/systest/jaxrs/tracing/opentracing/OpenTracingTracingTest.java +++ b/systests/tracing/src/test/java/org/apache/cxf/systest/jaxrs/tracing/opentracing/OpenTracingTracingTest.java @@ -199,7 +199,7 @@ public void testThatNewInnerSpanIsCreatedUsingAsyncInvocation() throws Interrupt final Response r = withTrace(createWebClient("/bookstore/books/async"), spanId).get(); assertEquals(Status.OK.getStatusCode(), r.getStatus()); - await().atMost(Duration.ofSeconds(10L)).until(()-> REPORTER.getSpans().size() == 2); + await().atMost(Duration.ofSeconds(30L)).until(()-> REPORTER.getSpans().size() == 2); final List spans = getSpansSorted(); assertThat(spans.size(), equalTo(2)); @@ -226,7 +226,7 @@ public void testThatNewSpanIsCreatedUsingAsyncInvocation() throws InterruptedExc final Response r = createWebClient("/bookstore/books/async").get(); assertEquals(Status.OK.getStatusCode(), r.getStatus()); - await().atMost(Duration.ofSeconds(10L)).until(()-> REPORTER.getSpans().size() == 2); + await().atMost(Duration.ofSeconds(30L)).until(()-> REPORTER.getSpans().size() == 2); final List spans = getSpansSorted(); assertThat(spans.size(), equalTo(2)); @@ -241,7 +241,7 @@ public void testThatNewSpanIsCreatedWhenNotProvidedUsingAsyncClient() throws Exc final Response r = client.async().get().get(1L, TimeUnit.SECONDS); assertEquals(Status.OK.getStatusCode(), r.getStatus()); - await().atMost(Duration.ofSeconds(10L)).until(()-> REPORTER.getSpans().size() == 3); + await().atMost(Duration.ofSeconds(30L)).until(()-> REPORTER.getSpans().size() == 3); assertThat(REPORTER.getSpans().size(), equalTo(3)); assertThat(REPORTER.getSpans().get(0).getOperationName(), equalTo("Get Books")); @@ -325,7 +325,7 @@ public void testThatProvidedSpanIsNotClosedWhenActive() throws MalformedURLExcep } // Await till flush happens, usually every second - await().atMost(Duration.ofSeconds(10L)).until(()-> REPORTER.getSpans().size() == 4); + await().atMost(Duration.ofSeconds(30L)).until(()-> REPORTER.getSpans().size() == 4); assertThat(REPORTER.getSpans().size(), equalTo(4)); assertThat(REPORTER.getSpans().get(3).getOperationName(), equalTo("test span")); @@ -342,7 +342,7 @@ public void testThatProvidedSpanIsNotDetachedWhenActiveUsingAsyncClient() throws assertEquals(Status.OK.getStatusCode(), r.getStatus()); assertThat(tracer.activeSpan().context(), equalTo(span.context())); - await().atMost(Duration.ofSeconds(10L)).until(()-> REPORTER.getSpans().size() == 3); + await().atMost(Duration.ofSeconds(30L)).until(()-> REPORTER.getSpans().size() == 3); assertThat(REPORTER.getSpans().size(), equalTo(3)); assertThat(REPORTER.getSpans().get(0).getOperationName(), equalTo("Get Books")); @@ -356,7 +356,7 @@ public void testThatProvidedSpanIsNotDetachedWhenActiveUsingAsyncClient() throws } // Await till flush happens, usually every second - await().atMost(Duration.ofSeconds(10L)).until(()-> REPORTER.getSpans().size() == 4); + await().atMost(Duration.ofSeconds(30L)).until(()-> REPORTER.getSpans().size() == 4); assertThat(REPORTER.getSpans().size(), equalTo(4)); assertThat(REPORTER.getSpans().get(3).getOperationName(), equalTo("test span")); @@ -391,7 +391,7 @@ public void testThatNewSpanIsCreatedOnClientTimeout() { try { client.get(); } finally { - await().atMost(Duration.ofSeconds(10L)).until(()-> REPORTER.getSpans().size() == 2); + await().atMost(Duration.ofSeconds(30L)).until(()-> REPORTER.getSpans().size() == 2); assertThat(REPORTER.getSpans().toString(), REPORTER.getSpans().size(), equalTo(2)); assertThat(REPORTER.getSpans().get(0).getOperationName(), equalTo("GET " + client.getCurrentURI())); assertThat(REPORTER.getSpans().get(0).getTags(), hasItem(Tags.ERROR.getKey(), Boolean.TRUE)); diff --git a/systests/tracing/src/test/java/org/apache/cxf/systest/jaxws/tracing/opentelemetry/OpenTelemetryTracingTest.java b/systests/tracing/src/test/java/org/apache/cxf/systest/jaxws/tracing/opentelemetry/OpenTelemetryTracingTest.java index b41c42b8996..1abe17f752d 100644 --- a/systests/tracing/src/test/java/org/apache/cxf/systest/jaxws/tracing/opentelemetry/OpenTelemetryTracingTest.java +++ b/systests/tracing/src/test/java/org/apache/cxf/systest/jaxws/tracing/opentelemetry/OpenTelemetryTracingTest.java @@ -247,7 +247,7 @@ public void testThatProvidedSpanIsNotClosedWhenActive() throws Exception { } // Await till flush happens, usually every second - await().atMost(Duration.ofSeconds(10L)).until(() -> otelRule.getSpans().size() == 4); + await().atMost(Duration.ofSeconds(30L)).until(() -> otelRule.getSpans().size() == 4); assertThat(otelRule.getSpans().size(), equalTo(4)); assertThat(otelRule.getSpans().get(3).getName(), equalTo("test span")); @@ -331,7 +331,7 @@ public void testThatNewInnerSpanIsCreatedOneway() throws Exception { service.orderBooks(); // Await till flush happens, usually every second - await().atMost(Duration.ofSeconds(10L)).until(() -> otelRule.getSpans().size() == 2); + await().atMost(Duration.ofSeconds(30L)).until(() -> otelRule.getSpans().size() == 2); assertThat(otelRule.getSpans().get(0).getName(), equalTo("POST /BookStore")); assertThat(otelRule.getSpans().get(1).getName(), diff --git a/systests/tracing/src/test/java/org/apache/cxf/systest/jaxws/tracing/opentracing/OpenTracingTracingTest.java b/systests/tracing/src/test/java/org/apache/cxf/systest/jaxws/tracing/opentracing/OpenTracingTracingTest.java index ab0103acc30..362b3f6386e 100644 --- a/systests/tracing/src/test/java/org/apache/cxf/systest/jaxws/tracing/opentracing/OpenTracingTracingTest.java +++ b/systests/tracing/src/test/java/org/apache/cxf/systest/jaxws/tracing/opentracing/OpenTracingTracingTest.java @@ -178,7 +178,7 @@ public void testThatProvidedSpanIsNotClosedWhenActive() throws Exception { } // Await till flush happens, usually every second - await().atMost(Duration.ofSeconds(10L)).until(()-> REPORTER.getSpans().size() == 4); + await().atMost(Duration.ofSeconds(30L)).until(()-> REPORTER.getSpans().size() == 4); assertThat(REPORTER.getSpans().size(), equalTo(4)); assertThat(REPORTER.getSpans().get(3).getOperationName(), equalTo("test span")); @@ -234,7 +234,7 @@ public void testThatNewInnerSpanIsCreatedOneway() throws Exception { service.orderBooks(); // Await till flush happens, usually every second - await().atMost(Duration.ofSeconds(10L)).until(() -> REPORTER.getSpans().size() == 2); + await().atMost(Duration.ofSeconds(30L)).until(() -> REPORTER.getSpans().size() == 2); assertThat(REPORTER.getSpans().get(0).getOperationName(), equalTo("POST /BookStore")); assertThat(REPORTER.getSpans().get(1).getOperationName(), From 73dd3e4513dfa6d369d9dfa0105b769a6f991e61 Mon Sep 17 00:00:00 2001 From: Guillaume Nodet Date: Thu, 26 Mar 2026 15:27:11 +0100 Subject: [PATCH 3/3] Fix TestSpanHandler thread-safety and revert timeout increase TestSpanHandler.SPANS used a plain ArrayList, which is not thread-safe. Client and server spans are added from different threads, so concurrent ArrayList.add() calls can lose elements and size() may return stale values due to JMM visibility. Change to CopyOnWriteArrayList which provides proper thread-safety. Writes (span additions) are infrequent while reads (Awaitility polling) are frequent, making COW the ideal choice. Revert the Awaitility timeout back to 5s since the thread-safety fix addresses the root cause of the flaky failures. Co-Authored-By: Claude Opus 4.6 --- .../apache/cxf/systest/brave/TestSpanHandler.java | 4 ++-- .../brave/jaxrs/AbstractBraveTracingTest.java | 6 +++--- .../brave/jaxws/AbstractBraveTracingTest.java | 2 +- .../JaxrsOpenTelemetryTracingTest.java | 14 +++++++------- .../opentracing/JaxrsOpenTracingTracingTest.java | 14 +++++++------- .../JaxwsOpenTelemetryTracingTest.java | 4 ++-- .../opentracing/JaxwsOpenTracingTracingTest.java | 4 ++-- 7 files changed, 24 insertions(+), 24 deletions(-) diff --git a/systests/tracing/src/test/java/org/apache/cxf/systest/brave/TestSpanHandler.java b/systests/tracing/src/test/java/org/apache/cxf/systest/brave/TestSpanHandler.java index 266cc366379..86fc605add8 100644 --- a/systests/tracing/src/test/java/org/apache/cxf/systest/brave/TestSpanHandler.java +++ b/systests/tracing/src/test/java/org/apache/cxf/systest/brave/TestSpanHandler.java @@ -18,15 +18,15 @@ */ package org.apache.cxf.systest.brave; -import java.util.ArrayList; import java.util.List; +import java.util.concurrent.CopyOnWriteArrayList; import brave.handler.MutableSpan; import brave.handler.SpanHandler; import brave.propagation.TraceContext; public class TestSpanHandler extends SpanHandler { - private static final List SPANS = new ArrayList<>(12); + private static final List SPANS = new CopyOnWriteArrayList<>(); @Override public boolean end(TraceContext context, MutableSpan span, Cause cause) { diff --git a/systests/tracing/src/test/java/org/apache/cxf/systest/brave/jaxrs/AbstractBraveTracingTest.java b/systests/tracing/src/test/java/org/apache/cxf/systest/brave/jaxrs/AbstractBraveTracingTest.java index ae188385299..a7db3b275a7 100644 --- a/systests/tracing/src/test/java/org/apache/cxf/systest/brave/jaxrs/AbstractBraveTracingTest.java +++ b/systests/tracing/src/test/java/org/apache/cxf/systest/brave/jaxrs/AbstractBraveTracingTest.java @@ -265,7 +265,7 @@ public void testThatProvidedSpanIsNotClosedWhenActive() throws MalformedURLExcep } // Await till flush happens, usually a second is enough - await().atMost(Duration.ofSeconds(30L)).until(()-> TestSpanHandler.getAllSpans().size() == 4); + await().atMost(Duration.ofSeconds(5L)).until(()-> TestSpanHandler.getAllSpans().size() == 4); assertThat(TestSpanHandler.getAllSpans().size(), equalTo(4)); assertThat(TestSpanHandler.getAllSpans().get(3).name(), equalTo("test span")); @@ -292,7 +292,7 @@ public void testThatProvidedSpanIsNotDetachedWhenActiveUsingAsyncClient() throws } // Await till flush happens, usually a second is enough - await().atMost(Duration.ofSeconds(30L)).until(()-> TestSpanHandler.getAllSpans().size() == 4); + await().atMost(Duration.ofSeconds(5L)).until(()-> TestSpanHandler.getAllSpans().size() == 4); assertThat(TestSpanHandler.getAllSpans().size(), equalTo(4)); assertThat(TestSpanHandler.getAllSpans().get(3).name(), equalTo("test span")); @@ -340,7 +340,7 @@ public void testThatNewSpanIsCreatedOnClientTimeout() { try { client.get(); } finally { - await().atMost(Duration.ofSeconds(30L)).until(()-> TestSpanHandler.getAllSpans().size() == 2); + await().atMost(Duration.ofSeconds(5L)).until(()-> TestSpanHandler.getAllSpans().size() == 2); assertThat(TestSpanHandler.getAllSpans().size(), equalTo(2)); assertThat(TestSpanHandler.getAllSpans().get(0).name(), equalTo("GET " + client.getCurrentURI())); assertThat(TestSpanHandler.getAllSpans().get(0).tags(), hasKey("error")); diff --git a/systests/tracing/src/test/java/org/apache/cxf/systest/brave/jaxws/AbstractBraveTracingTest.java b/systests/tracing/src/test/java/org/apache/cxf/systest/brave/jaxws/AbstractBraveTracingTest.java index a03c2cce615..64f6ebbaba1 100644 --- a/systests/tracing/src/test/java/org/apache/cxf/systest/brave/jaxws/AbstractBraveTracingTest.java +++ b/systests/tracing/src/test/java/org/apache/cxf/systest/brave/jaxws/AbstractBraveTracingTest.java @@ -204,7 +204,7 @@ public void testThatNewInnerSpanIsCreatedOneway() throws Exception { service.orderBooks(); // Await till flush happens, usually every second - await().atMost(Duration.ofSeconds(30L)).until(() -> TestSpanHandler.getAllSpans().size() == 2); + await().atMost(Duration.ofSeconds(5L)).until(() -> TestSpanHandler.getAllSpans().size() == 2); assertThat(TestSpanHandler.getAllSpans().get(0).name(), equalTo("POST /BookStore")); assertThat(TestSpanHandler.getAllSpans().get(1).name(), diff --git a/systests/tracing/src/test/java/org/apache/cxf/systest/jaxrs/tracing/opentelemetry/JaxrsOpenTelemetryTracingTest.java b/systests/tracing/src/test/java/org/apache/cxf/systest/jaxrs/tracing/opentelemetry/JaxrsOpenTelemetryTracingTest.java index 3d4dceda251..f49a46e068a 100644 --- a/systests/tracing/src/test/java/org/apache/cxf/systest/jaxrs/tracing/opentelemetry/JaxrsOpenTelemetryTracingTest.java +++ b/systests/tracing/src/test/java/org/apache/cxf/systest/jaxrs/tracing/opentelemetry/JaxrsOpenTelemetryTracingTest.java @@ -257,7 +257,7 @@ public void testThatNewInnerSpanIsCreatedUsingAsyncInvocation() throws Interrupt final Response r = withTrace(createWebClient("/bookstore/books/async")).get(); assertEquals(Status.OK.getStatusCode(), r.getStatus()); - await().atMost(Duration.ofSeconds(30L)).until(() -> otelRule.getSpans().size() == 2); + await().atMost(Duration.ofSeconds(5L)).until(() -> otelRule.getSpans().size() == 2); final List spans = getSpansSorted(); assertThat(spans.size(), equalTo(2)); @@ -287,7 +287,7 @@ public void testThatNewSpanIsCreatedUsingAsyncInvocation() throws InterruptedExc final Response r = createWebClient("/bookstore/books/async").get(); assertEquals(Status.OK.getStatusCode(), r.getStatus()); - await().atMost(Duration.ofSeconds(30L)).until(() -> otelRule.getSpans().size() == 2); + await().atMost(Duration.ofSeconds(5L)).until(() -> otelRule.getSpans().size() == 2); final List spans = getSpansSorted(); assertThat(spans.size(), equalTo(2)); @@ -303,7 +303,7 @@ public void testThatNewSpanIsCreatedWhenNotProvidedUsingAsyncClient() throws Exc final Response r = client.async().get().get(1L, TimeUnit.SECONDS); assertEquals(Status.OK.getStatusCode(), r.getStatus()); - await().atMost(Duration.ofSeconds(30L)).until(() -> otelRule.getSpans().size() == 3); + await().atMost(Duration.ofSeconds(5L)).until(() -> otelRule.getSpans().size() == 3); assertThat(otelRule.getSpans().size(), equalTo(3)); assertThat(otelRule.getSpans().get(0).getName(), equalTo("Get Books")); @@ -373,7 +373,7 @@ public void testThatProvidedSpanIsNotClosedWhenActive() throws MalformedURLExcep } // Await till flush happens, usually every second - await().atMost(Duration.ofSeconds(30L)).until(() -> otelRule.getSpans().size() == 4); + await().atMost(Duration.ofSeconds(5L)).until(() -> otelRule.getSpans().size() == 4); assertThat(otelRule.getSpans().size(), equalTo(4)); assertThat(otelRule.getSpans().get(3).getName(), equalTo("test span")); @@ -392,7 +392,7 @@ public void testThatProvidedSpanIsNotDetachedWhenActiveUsingAsyncClient() throws assertThat(Span.current().getSpanContext().getSpanId(), equalTo(span.getSpanContext().getSpanId())); - await().atMost(Duration.ofSeconds(30L)).until(() -> otelRule.getSpans().size() == 3); + await().atMost(Duration.ofSeconds(5L)).until(() -> otelRule.getSpans().size() == 3); assertThat(otelRule.getSpans().size(), equalTo(3)); assertThat(otelRule.getSpans().get(0).getName(), equalTo("Get Books")); @@ -406,7 +406,7 @@ public void testThatProvidedSpanIsNotDetachedWhenActiveUsingAsyncClient() throws } // Await till flush happens, usually every second - await().atMost(Duration.ofSeconds(30L)).until(() -> otelRule.getSpans().size() == 4); + await().atMost(Duration.ofSeconds(5L)).until(() -> otelRule.getSpans().size() == 4); assertThat(otelRule.getSpans().size(), equalTo(4)); assertThat(otelRule.getSpans().get(3).getName(), equalTo("test span")); @@ -443,7 +443,7 @@ public void testThatNewSpanIsCreatedOnClientTimeout() { try { client.get(); } finally { - await().atMost(Duration.ofSeconds(30L)).until(() -> otelRule.getSpans().size() == 2); + await().atMost(Duration.ofSeconds(5L)).until(() -> otelRule.getSpans().size() == 2); assertThat(otelRule.getSpans().toString(), otelRule.getSpans().size(), equalTo(2)); assertThat(otelRule.getSpans().get(0).getName(), equalTo("GET " + client.getCurrentURI())); assertThat(otelRule.getSpans().get(0).getStatus().getStatusCode(), equalTo(StatusCode.ERROR)); diff --git a/systests/tracing/src/test/java/org/apache/cxf/systest/jaxrs/tracing/opentracing/JaxrsOpenTracingTracingTest.java b/systests/tracing/src/test/java/org/apache/cxf/systest/jaxrs/tracing/opentracing/JaxrsOpenTracingTracingTest.java index 530ef675748..da278ba6f20 100644 --- a/systests/tracing/src/test/java/org/apache/cxf/systest/jaxrs/tracing/opentracing/JaxrsOpenTracingTracingTest.java +++ b/systests/tracing/src/test/java/org/apache/cxf/systest/jaxrs/tracing/opentracing/JaxrsOpenTracingTracingTest.java @@ -199,7 +199,7 @@ public void testThatNewInnerSpanIsCreatedUsingAsyncInvocation() throws Interrupt final Response r = withTrace(createWebClient("/bookstore/books/async"), spanId).get(); assertEquals(Status.OK.getStatusCode(), r.getStatus()); - await().atMost(Duration.ofSeconds(30L)).until(()-> REPORTER.getSpans().size() == 2); + await().atMost(Duration.ofSeconds(5L)).until(()-> REPORTER.getSpans().size() == 2); final List spans = getSpansSorted(); assertThat(spans.size(), equalTo(2)); @@ -226,7 +226,7 @@ public void testThatNewSpanIsCreatedUsingAsyncInvocation() throws InterruptedExc final Response r = createWebClient("/bookstore/books/async").get(); assertEquals(Status.OK.getStatusCode(), r.getStatus()); - await().atMost(Duration.ofSeconds(30L)).until(()-> REPORTER.getSpans().size() == 2); + await().atMost(Duration.ofSeconds(5L)).until(()-> REPORTER.getSpans().size() == 2); final List spans = getSpansSorted(); assertThat(spans.size(), equalTo(2)); @@ -241,7 +241,7 @@ public void testThatNewSpanIsCreatedWhenNotProvidedUsingAsyncClient() throws Exc final Response r = client.async().get().get(1L, TimeUnit.SECONDS); assertEquals(Status.OK.getStatusCode(), r.getStatus()); - await().atMost(Duration.ofSeconds(30L)).until(()-> REPORTER.getSpans().size() == 3); + await().atMost(Duration.ofSeconds(5L)).until(()-> REPORTER.getSpans().size() == 3); assertThat(REPORTER.getSpans().size(), equalTo(3)); assertThat(REPORTER.getSpans().get(0).getOperationName(), equalTo("Get Books")); @@ -325,7 +325,7 @@ public void testThatProvidedSpanIsNotClosedWhenActive() throws MalformedURLExcep } // Await till flush happens, usually every second - await().atMost(Duration.ofSeconds(30L)).until(()-> REPORTER.getSpans().size() == 4); + await().atMost(Duration.ofSeconds(5L)).until(()-> REPORTER.getSpans().size() == 4); assertThat(REPORTER.getSpans().size(), equalTo(4)); assertThat(REPORTER.getSpans().get(3).getOperationName(), equalTo("test span")); @@ -342,7 +342,7 @@ public void testThatProvidedSpanIsNotDetachedWhenActiveUsingAsyncClient() throws assertEquals(Status.OK.getStatusCode(), r.getStatus()); assertThat(tracer.activeSpan().context(), equalTo(span.context())); - await().atMost(Duration.ofSeconds(30L)).until(()-> REPORTER.getSpans().size() == 3); + await().atMost(Duration.ofSeconds(5L)).until(()-> REPORTER.getSpans().size() == 3); assertThat(REPORTER.getSpans().size(), equalTo(3)); assertThat(REPORTER.getSpans().get(0).getOperationName(), equalTo("Get Books")); @@ -356,7 +356,7 @@ public void testThatProvidedSpanIsNotDetachedWhenActiveUsingAsyncClient() throws } // Await till flush happens, usually every second - await().atMost(Duration.ofSeconds(30L)).until(()-> REPORTER.getSpans().size() == 4); + await().atMost(Duration.ofSeconds(5L)).until(()-> REPORTER.getSpans().size() == 4); assertThat(REPORTER.getSpans().size(), equalTo(4)); assertThat(REPORTER.getSpans().get(3).getOperationName(), equalTo("test span")); @@ -391,7 +391,7 @@ public void testThatNewSpanIsCreatedOnClientTimeout() { try { client.get(); } finally { - await().atMost(Duration.ofSeconds(30L)).until(()-> REPORTER.getSpans().size() == 2); + await().atMost(Duration.ofSeconds(5L)).until(()-> REPORTER.getSpans().size() == 2); assertThat(REPORTER.getSpans().toString(), REPORTER.getSpans().size(), equalTo(2)); assertThat(REPORTER.getSpans().get(0).getOperationName(), equalTo("GET " + client.getCurrentURI())); assertThat(REPORTER.getSpans().get(0).getTags(), hasItem(Tags.ERROR.getKey(), Boolean.TRUE)); diff --git a/systests/tracing/src/test/java/org/apache/cxf/systest/jaxws/tracing/opentelemetry/JaxwsOpenTelemetryTracingTest.java b/systests/tracing/src/test/java/org/apache/cxf/systest/jaxws/tracing/opentelemetry/JaxwsOpenTelemetryTracingTest.java index 1e1e8b6daa7..821b57e943e 100644 --- a/systests/tracing/src/test/java/org/apache/cxf/systest/jaxws/tracing/opentelemetry/JaxwsOpenTelemetryTracingTest.java +++ b/systests/tracing/src/test/java/org/apache/cxf/systest/jaxws/tracing/opentelemetry/JaxwsOpenTelemetryTracingTest.java @@ -247,7 +247,7 @@ public void testThatProvidedSpanIsNotClosedWhenActive() throws Exception { } // Await till flush happens, usually every second - await().atMost(Duration.ofSeconds(30L)).until(() -> otelRule.getSpans().size() == 4); + await().atMost(Duration.ofSeconds(5L)).until(() -> otelRule.getSpans().size() == 4); assertThat(otelRule.getSpans().size(), equalTo(4)); assertThat(otelRule.getSpans().get(3).getName(), equalTo("test span")); @@ -331,7 +331,7 @@ public void testThatNewInnerSpanIsCreatedOneway() throws Exception { service.orderBooks(); // Await till flush happens, usually every second - await().atMost(Duration.ofSeconds(30L)).until(() -> otelRule.getSpans().size() == 2); + await().atMost(Duration.ofSeconds(5L)).until(() -> otelRule.getSpans().size() == 2); assertThat(otelRule.getSpans().get(0).getName(), equalTo("POST /BookStore")); assertThat(otelRule.getSpans().get(1).getName(), diff --git a/systests/tracing/src/test/java/org/apache/cxf/systest/jaxws/tracing/opentracing/JaxwsOpenTracingTracingTest.java b/systests/tracing/src/test/java/org/apache/cxf/systest/jaxws/tracing/opentracing/JaxwsOpenTracingTracingTest.java index 1219edc8b88..d3f9f5e4384 100644 --- a/systests/tracing/src/test/java/org/apache/cxf/systest/jaxws/tracing/opentracing/JaxwsOpenTracingTracingTest.java +++ b/systests/tracing/src/test/java/org/apache/cxf/systest/jaxws/tracing/opentracing/JaxwsOpenTracingTracingTest.java @@ -178,7 +178,7 @@ public void testThatProvidedSpanIsNotClosedWhenActive() throws Exception { } // Await till flush happens, usually every second - await().atMost(Duration.ofSeconds(30L)).until(()-> REPORTER.getSpans().size() == 4); + await().atMost(Duration.ofSeconds(5L)).until(()-> REPORTER.getSpans().size() == 4); assertThat(REPORTER.getSpans().size(), equalTo(4)); assertThat(REPORTER.getSpans().get(3).getOperationName(), equalTo("test span")); @@ -234,7 +234,7 @@ public void testThatNewInnerSpanIsCreatedOneway() throws Exception { service.orderBooks(); // Await till flush happens, usually every second - await().atMost(Duration.ofSeconds(30L)).until(() -> REPORTER.getSpans().size() == 2); + await().atMost(Duration.ofSeconds(5L)).until(() -> REPORTER.getSpans().size() == 2); assertThat(REPORTER.getSpans().get(0).getOperationName(), equalTo("POST /BookStore")); assertThat(REPORTER.getSpans().get(1).getOperationName(),