public static ResultWrapper beforeExecute()

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;
        }
    }