apm-agent-plugins/apm-okhttp-plugin/src/main/java/co/elastic/apm/agent/okhttp/OkHttp3ClientAsyncInstrumentation.java [90:121]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                request = builder.build();
            }
            return new Object[]{request, callback, span};
        }

        @Advice.OnMethodExit(suppress = Throwable.class, inline = false)
        public static void onAfterEnqueue(@Advice.Enter @Nullable Object[] enter) {
            Span<?> span = enter != null ? (Span<?>) enter[2] : null;
            if (span != null) {
                span.deactivate();
            }
        }
    }

    public static class CallbackWrapperCreator implements WrapperCreator<Callback> {
        public static final CallbackWrapperCreator INSTANCE = new CallbackWrapperCreator();

        @Override
        public Callback wrap(final Callback delegate, Span<?> span) {
            return new CallbackWrapper(span, delegate);
        }

        private static class CallbackWrapper implements Callback {
            private final Span<?> span;
            private final Callback delegate;

            CallbackWrapper(Span<?> span, Callback delegate) {
                this.span = span;
                this.delegate = delegate;
            }

            @Override
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



apm-agent-plugins/apm-okhttp-plugin/src/main/java/co/elastic/apm/agent/okhttp/OkHttpClientAsyncInstrumentation.java [87:120]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                request = builder.build();
            }

            return new Object[]{request, callback, span};
        }

        @Advice.OnMethodExit(suppress = Throwable.class, inline = false)
        public static void onAfterEnqueue(@Advice.Enter @Nullable Object[] enter) {
            Span<?> span = enter != null ? (Span<?>) enter[2] : null;
            if (span != null) {
                span.deactivate();
            }
        }
    }

    public static class CallbackWrapperCreator implements WrapperCreator<Callback> {

        public static final CallbackWrapperCreator INSTANCE = new CallbackWrapperCreator();

        @Override
        public Callback wrap(final Callback delegate, Span<?> span) {
            return new CallbackWrapper(span, delegate);
        }

        private static class CallbackWrapper implements Callback {
            private final Span<?> span;
            private final Callback delegate;

            CallbackWrapper(Span<?> span, Callback delegate) {
                this.span = span;
                this.delegate = delegate;
            }

            @Override
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



