|
14 | 14 | import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation; |
15 | 15 | import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer; |
16 | 16 | import net.bytebuddy.asm.Advice; |
| 17 | +import net.bytebuddy.asm.Advice.AssignReturned; |
| 18 | +import net.bytebuddy.asm.Advice.AssignReturned.ToArguments.ToArgument; |
17 | 19 | import net.bytebuddy.description.type.TypeDescription; |
18 | 20 | import net.bytebuddy.matcher.ElementMatcher; |
19 | 21 |
|
@@ -46,30 +48,33 @@ public void transform(TypeTransformer transformer) { |
46 | 48 | @SuppressWarnings("unused") |
47 | 49 | public static class SingleResultCallbackArg0Advice { |
48 | 50 |
|
| 51 | + @AssignReturned.ToArguments(@ToArgument(0)) |
49 | 52 | @Advice.OnMethodEnter(suppress = Throwable.class) |
50 | | - public static void wrapCallback( |
51 | | - @Advice.Argument(value = 0, readOnly = false) SingleResultCallback<Object> callback) { |
52 | | - callback = new SingleResultCallbackWrapper(Java8BytecodeBridge.currentContext(), callback); |
| 53 | + public static SingleResultCallback<Object> wrapCallback( |
| 54 | + @Advice.Argument(0) SingleResultCallback<Object> callback) { |
| 55 | + return new SingleResultCallbackWrapper(Java8BytecodeBridge.currentContext(), callback); |
53 | 56 | } |
54 | 57 | } |
55 | 58 |
|
56 | 59 | @SuppressWarnings("unused") |
57 | 60 | public static class SingleResultCallbackArg1Advice { |
58 | 61 |
|
| 62 | + @AssignReturned.ToArguments(@ToArgument(1)) |
59 | 63 | @Advice.OnMethodEnter(suppress = Throwable.class) |
60 | | - public static void wrapCallback( |
61 | | - @Advice.Argument(value = 1, readOnly = false) SingleResultCallback<Object> callback) { |
62 | | - callback = new SingleResultCallbackWrapper(Java8BytecodeBridge.currentContext(), callback); |
| 64 | + public static SingleResultCallback<Object> wrapCallback( |
| 65 | + @Advice.Argument(1) SingleResultCallback<Object> callback) { |
| 66 | + return new SingleResultCallbackWrapper(Java8BytecodeBridge.currentContext(), callback); |
63 | 67 | } |
64 | 68 | } |
65 | 69 |
|
66 | 70 | @SuppressWarnings("unused") |
67 | 71 | public static class SingleResultCallbackArg2Advice { |
68 | 72 |
|
| 73 | + @AssignReturned.ToArguments(@ToArgument(2)) |
69 | 74 | @Advice.OnMethodEnter(suppress = Throwable.class) |
70 | | - public static void wrapCallback( |
71 | | - @Advice.Argument(value = 2, readOnly = false) SingleResultCallback<Object> callback) { |
72 | | - callback = new SingleResultCallbackWrapper(Java8BytecodeBridge.currentContext(), callback); |
| 75 | + public static SingleResultCallback<Object> wrapCallback( |
| 76 | + @Advice.Argument(2) SingleResultCallback<Object> callback) { |
| 77 | + return new SingleResultCallbackWrapper(Java8BytecodeBridge.currentContext(), callback); |
73 | 78 | } |
74 | 79 | } |
75 | 80 | } |
0 commit comments