in graalvm-native-image-demo/opentelemetry-agent-native/src/main/java/com/alibaba/jvm/ExecutorsAspect.java [45:67]
public static ResultWrapper beforeExecute(@Advice.Rewrite(field = "newTask") Runnable task) {
try {
ResultWrapper resultWrapper = new ResultWrapper();
Context context = Java8BytecodeBridge.currentContext();
if (!ExecutorAdviceHelper.shouldPropagateContext(context, task)) {
return resultWrapper;
}
if (ContextPropagatingRunnable.shouldDecorateRunnable(task)) {
resultWrapper.newTask = Optional
.of(ContextPropagatingRunnable.propagateContext(task, context));
return resultWrapper;
}
VirtualField<Runnable, PropagatedContext> virtualField = VirtualField.find(Runnable.class,
PropagatedContext.class);
resultWrapper.ret = ExecutorAdviceHelper.attachContextToTask(context, virtualField, task);
return resultWrapper;
} catch (Throwable t) {
ResultWrapper resultWrapper = new ResultWrapper();
resultWrapper.newTask = null;
resultWrapper.ret = null;
return resultWrapper;
}
}