diff --git a/javaagent-api/src/main/java/io/opentelemetry/javaagent/instrumentation/api/concurrent/ExecutorInstrumentationUtils.java b/javaagent-api/src/main/java/io/opentelemetry/javaagent/instrumentation/api/concurrent/ExecutorInstrumentationUtils.java index 41f56843c1..44900f6a4e 100644 --- a/javaagent-api/src/main/java/io/opentelemetry/javaagent/instrumentation/api/concurrent/ExecutorInstrumentationUtils.java +++ b/javaagent-api/src/main/java/io/opentelemetry/javaagent/instrumentation/api/concurrent/ExecutorInstrumentationUtils.java @@ -5,7 +5,6 @@ package io.opentelemetry.javaagent.instrumentation.api.concurrent; -import io.opentelemetry.api.trace.Span; import io.opentelemetry.context.Context; import io.opentelemetry.instrumentation.api.context.ContextPropagationDebug; import io.opentelemetry.javaagent.instrumentation.api.ContextStore; @@ -26,11 +25,12 @@ public class ExecutorInstrumentationUtils { return false; } - Span span = Span.current(); Class taskClass = task.getClass(); Class enclosingClass = taskClass.getEnclosingClass(); - return span.getSpanContext().isValid() + // not much point in propagating root context + // plus it causes failures under otel.internal.failOnContextLeak=true + return Context.current() != Context.root() // TODO Workaround for // https://github.com/open-telemetry/opentelemetry-java-instrumentation/issues/787 && !taskClass.getName().equals("org.apache.tomcat.util.net.NioEndpoint$SocketProcessor")