diff --git a/dd-trace-ot/src/main/java/datadog/opentracing/DDTracer.java b/dd-trace-ot/src/main/java/datadog/opentracing/DDTracer.java index 28eb1ec9c3..005f3147e3 100644 --- a/dd-trace-ot/src/main/java/datadog/opentracing/DDTracer.java +++ b/dd-trace-ot/src/main/java/datadog/opentracing/DDTracer.java @@ -564,14 +564,7 @@ public class DDTracer implements io.opentracing.Tracer, Closeable, datadog.trace // Get header tags whether propagating or not. if (parentContext instanceof TagContext) { - final TagContext tagContext = (TagContext) parentContext; - - if (tags.isEmpty() && !tagContext.getTags().isEmpty()) { - tags = new HashMap<>(); - } - if (!tagContext.getTags().isEmpty()) { - tags.putAll(tagContext.getTags()); - } + tags.putAll(((TagContext) parentContext).getTags()); } tags.put(Config.RUNTIME_ID_TAG, runtimeId); diff --git a/dd-trace-ot/src/main/java/datadog/opentracing/propagation/ExtractedContext.java b/dd-trace-ot/src/main/java/datadog/opentracing/propagation/ExtractedContext.java index f84804879b..80459673db 100644 --- a/dd-trace-ot/src/main/java/datadog/opentracing/propagation/ExtractedContext.java +++ b/dd-trace-ot/src/main/java/datadog/opentracing/propagation/ExtractedContext.java @@ -3,6 +3,9 @@ package datadog.opentracing.propagation; import java.util.Map; import java.util.concurrent.atomic.AtomicBoolean; +/** + * Propagated data resulting from calling tracer.extract with header data from an incoming request. + */ public class ExtractedContext extends TagContext { private final String traceId; private final String spanId; diff --git a/dd-trace-ot/src/main/java/datadog/opentracing/propagation/TagContext.java b/dd-trace-ot/src/main/java/datadog/opentracing/propagation/TagContext.java index 6198a292a8..2e8fdd9f57 100644 --- a/dd-trace-ot/src/main/java/datadog/opentracing/propagation/TagContext.java +++ b/dd-trace-ot/src/main/java/datadog/opentracing/propagation/TagContext.java @@ -4,6 +4,10 @@ import io.opentracing.SpanContext; import java.util.Collections; import java.util.Map; +/** + * When calling extract, we allow for grabbing other configured headers as tags. Those tags are + * returned here even if the rest of the request would have returned null. + */ public class TagContext implements SpanContext { private final Map tags;