Skip to content

Commit b47cfa4

Browse files
committed
Apply CR changes
1 parent a1e7307 commit b47cfa4

File tree

1 file changed

+12
-3
lines changed

1 file changed

+12
-3
lines changed

instrumentation/executors/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/executors/StructuredTaskScopeInstrumentation.java

+12-3
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,18 @@ public static class ForkCallableAdvice {
4040
@Advice.OnMethodEnter(suppress = Throwable.class)
4141
public static PropagatedContext enterCallableFork(@Advice.Argument(0) Callable<?> task) {
4242
Context context = Java8BytecodeBridge.currentContext();
43-
VirtualField<Callable<?>, PropagatedContext> virtualField =
44-
VirtualField.find(Callable.class, PropagatedContext.class);
45-
return ExecutorAdviceHelper.attachContextToTask(context, virtualField, task);
43+
if (ExecutorAdviceHelper.shouldPropagateContext(context, task)) {
44+
VirtualField<Callable<?>, PropagatedContext> virtualField =
45+
VirtualField.find(Callable.class, PropagatedContext.class);
46+
return ExecutorAdviceHelper.attachContextToTask(context, virtualField, task);
47+
}
48+
return null;
49+
}
50+
51+
@Advice.OnMethodExit(onThrowable = Throwable.class, suppress = Throwable.class)
52+
public static void exitCallableFork(
53+
@Advice.Enter PropagatedContext propagatedContext, @Advice.Thrown Throwable throwable) {
54+
ExecutorAdviceHelper.cleanUpAfterSubmit(propagatedContext, throwable);
4655
}
4756
}
4857
}

0 commit comments

Comments
 (0)