From 2c22bed76e95b829411620326c112a3000a92188 Mon Sep 17 00:00:00 2001 From: Eunbin Son Date: Sun, 21 Jun 2026 18:12:35 +0900 Subject: [PATCH] Return null from TracerShim extract when the carrier has no span context --- CHANGELOG.md | 5 +++++ .../opentelemetry/opentracingshim/Propagation.java | 2 +- .../opentracingshim/TracerShimTest.java | 12 ++++++++++++ 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c399e74acfa..4dd4fb59d93 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,11 @@ ## Unreleased +### Shims + +* OpenTracing: Return null from `Tracer.extract` when the carrier has no span context + ([#8505](https://github.com/open-telemetry/opentelemetry-java/pull/8505)) + ## Version 1.63.0 (2026-06-05) ### API diff --git a/opentracing-shim/src/main/java/io/opentelemetry/opentracingshim/Propagation.java b/opentracing-shim/src/main/java/io/opentelemetry/opentracingshim/Propagation.java index 4188bb0fee7..04f0407b4a8 100644 --- a/opentracing-shim/src/main/java/io/opentelemetry/opentracingshim/Propagation.java +++ b/opentracing-shim/src/main/java/io/opentelemetry/opentracingshim/Propagation.java @@ -42,7 +42,7 @@ SpanContextShim extractTextMap(Format format, TextMapExtract carrier) { carrierMap.put(entry.getKey(), entry.getValue()); } - Context context = getPropagator(format).extract(Context.current(), carrierMap, GETTER_INSTANCE); + Context context = getPropagator(format).extract(Context.root(), carrierMap, GETTER_INSTANCE); Span span = Span.fromContext(context); Baggage baggage = Baggage.fromContext(context); diff --git a/opentracing-shim/src/test/java/io/opentelemetry/opentracingshim/TracerShimTest.java b/opentracing-shim/src/test/java/io/opentelemetry/opentracingshim/TracerShimTest.java index be8e004166d..f539e5e3bfa 100644 --- a/opentracing-shim/src/test/java/io/opentelemetry/opentracingshim/TracerShimTest.java +++ b/opentracing-shim/src/test/java/io/opentelemetry/opentracingshim/TracerShimTest.java @@ -350,6 +350,18 @@ void extract_onlyBaggage() { assertThat(spanContextShim.getBaggage()).isEqualTo(baggage); } + @Test + void extract_emptyCarrier_withActiveSpan_returnsNull() { + Span span = tracerShim.buildSpan("one").start(); + try (Scope scope = tracerShim.activateSpan(span)) { + SpanContext result = + tracerShim.extract(Format.Builtin.TEXT_MAP, new TextMapAdapter(Collections.emptyMap())); + assertThat(result).isNull(); + } finally { + span.finish(); + } + } + @Test @SuppressLogger(TracerShim.class) void close_OpenTelemetrySdk() {