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 d2bff049b8264334f799f5c7d074850bfc8abf38 Author: Andriy Redko <[email protected]> AuthorDate: Sun Jun 1 10:26:57 2025 -0400 Revert "CXF-9142 Change async tracing tests to be order-agnostic (#2427)" This reverts commit c57a4b69f44311b2aae75310db01d1ef5732afc7. (cherry picked from commit 4a540e5e1afeab52a35a02c75979d47d850829a1) # Conflicts: # systests/tracing/src/test/java/org/apache/cxf/systest/jaxrs/tracing/opentelemetry/OpenTelemetryTracingTest.java # systests/tracing/src/test/java/org/apache/cxf/systest/jaxrs/tracing/opentracing/OpenTracingTracingTest.java (cherry picked from commit 2645927fbfd1e765d4a7cd9eb5a29cdbd73eee48) --- .../opentelemetry/OpenTelemetryTracingTest.java | 32 ++++++++++++++++------ .../opentracing/OpenTracingTracingTest.java | 31 +++++++++++++++------ 2 files changed, 46 insertions(+), 17 deletions(-) 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 8fadbbed70..7115179ee3 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 @@ -20,8 +20,11 @@ package org.apache.cxf.systest.jaxrs.tracing.opentelemetry; import java.net.MalformedURLException; import java.time.Duration; +import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; +import java.util.Comparator; +import java.util.List; import java.util.concurrent.ExecutionException; import java.util.concurrent.Future; import java.util.concurrent.TimeUnit; @@ -257,12 +260,13 @@ public class OpenTelemetryTracingTest extends AbstractClientServerTestBase { await().atMost(Duration.ofSeconds(1L)).until(() -> otelRule.getSpans().size() == 2); - assertThat(otelRule.getSpans().size(), equalTo(2)); - assertEquals("Processing books", otelRule.getSpans().get(0).getName()); - assertEquals("GET /bookstore/books/async", otelRule.getSpans().get(1).getName()); - assertThat(otelRule.getSpans().get(1).getParentSpanContext().isValid(), equalTo(true)); - assertThat(otelRule.getSpans().get(1).getParentSpanId(), - equalTo(Span.current().getSpanContext().getSpanId())); + final List<SpanData> spans = getSpansSorted(); + assertThat(spans.size(), equalTo(2)); + + assertEquals("Processing books", spans.get(0).getName()); + assertEquals("GET /bookstore/books/async", spans.get(1).getName()); + assertThat(spans.get(1).getParentSpanContext().isValid(), equalTo(true)); + assertThat(spans.get(1).getParentSpanId(), equalTo(Span.current().getSpanContext().getSpanId())); } } @@ -286,9 +290,10 @@ public class OpenTelemetryTracingTest extends AbstractClientServerTestBase { await().atMost(Duration.ofSeconds(1L)).until(() -> otelRule.getSpans().size() == 2); - assertThat(otelRule.getSpans().size(), equalTo(2)); - assertThat(otelRule.getSpans().get(0).getName(), equalTo("Processing books")); - assertThat(otelRule.getSpans().get(1).getName(), equalTo("GET /bookstore/books/async")); + final List<SpanData> spans = getSpansSorted(); + assertThat(spans.size(), equalTo(2)); + assertThat(spans.get(0).getName(), equalTo("Processing books")); + assertThat(spans.get(1).getName(), equalTo("GET /bookstore/books/async")); } @Test @@ -528,6 +533,15 @@ public class OpenTelemetryTracingTest extends AbstractClientServerTestBase { } } + private List<SpanData> getSpansSorted() { + final List<SpanData> spans = new ArrayList<>(otelRule.getSpans()); + spans.sort(Comparator + .comparingLong(SpanData::getStartEpochNanos) + .thenComparingLong(SpanData::getEndEpochNanos) + .reversed()); + return spans; + } + public static class OpenTelemetryServer extends AbstractTestServerBase { private org.apache.cxf.endpoint.Server server; 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 98523d373a..aaf203c77c 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 @@ -20,9 +20,12 @@ package org.apache.cxf.systest.jaxrs.tracing.opentracing; import java.net.MalformedURLException; import java.time.Duration; +import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; +import java.util.Comparator; import java.util.Iterator; +import java.util.List; import java.util.Map.Entry; import java.util.concurrent.ExecutionException; import java.util.concurrent.Future; @@ -51,6 +54,7 @@ import org.apache.cxf.tracing.opentracing.jaxrs.OpenTracingClientProvider; import org.apache.cxf.tracing.opentracing.jaxrs.OpenTracingFeature; import org.apache.cxf.transports.http.configuration.HTTPClientPolicy; +import io.jaegertracing.internal.JaegerSpan; import io.jaegertracing.internal.JaegerSpanContext; import io.jaegertracing.internal.JaegerTracer; import io.jaegertracing.internal.reporters.InMemoryReporter; @@ -199,11 +203,12 @@ public class OpenTracingTracingTest extends AbstractClientServerTestBase { await().atMost(Duration.ofSeconds(1L)).until(()-> REPORTER.getSpans().size() == 2); - assertThat(REPORTER.getSpans().size(), equalTo(2)); - assertEquals("Processing books", REPORTER.getSpans().get(0).getOperationName()); - assertEquals("GET /bookstore/books/async", REPORTER.getSpans().get(1).getOperationName()); - assertThat(REPORTER.getSpans().get(1).getReferences(), not(empty())); - assertThat(REPORTER.getSpans().get(1).getReferences().get(0).getSpanContext().getSpanId(), + final List<JaegerSpan> spans = getSpansSorted(); + assertThat(spans.size(), equalTo(2)); + assertEquals("Processing books", spans.get(0).getOperationName()); + assertEquals("GET /bookstore/books/async", spans.get(1).getOperationName()); + assertThat(spans.get(1).getReferences(), not(empty())); + assertThat(spans.get(1).getReferences().get(0).getSpanContext().getSpanId(), equalTo(spanId.getSpanId())); } @@ -225,9 +230,10 @@ public class OpenTracingTracingTest extends AbstractClientServerTestBase { await().atMost(Duration.ofSeconds(1L)).until(()-> REPORTER.getSpans().size() == 2); - assertThat(REPORTER.getSpans().size(), equalTo(2)); - assertThat(REPORTER.getSpans().get(0).getOperationName(), equalTo("Processing books")); - assertThat(REPORTER.getSpans().get(1).getOperationName(), equalTo("GET /bookstore/books/async")); + final List<JaegerSpan> spans = getSpansSorted(); + assertThat(spans.size(), equalTo(2)); + assertThat(spans.get(0).getOperationName(), equalTo("Processing books")); + assertThat(spans.get(1).getOperationName(), equalTo("GET /bookstore/books/async")); } @Test @@ -461,4 +467,13 @@ public class OpenTracingTracingTest extends AbstractClientServerTestBase { RANDOM.getAndIncrement() /* traceId lo */, RANDOM.getAndIncrement() /* spanId */, RANDOM.getAndIncrement() /* parentId */, (byte) 1 /* sampled */); } + + private List<JaegerSpan> getSpansSorted() { + final List<JaegerSpan> spans = new ArrayList<>(REPORTER.getSpans()); + spans.sort(Comparator + .comparingLong(JaegerSpan::getStart) + .thenComparing((s1, s2) -> Long.compare(s1.getStart() + s1.getDuration(), s2.getStart() + s2.getDuration())) + .reversed()); + return spans; + } }
