Skip to content

Commit d650adf

Browse files
committed
fix: indy compliance
1 parent d54f8f4 commit d650adf

6 files changed

Lines changed: 36 additions & 30 deletions

File tree

instrumentation/finagle-http-23.11/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/finaglehttp/v23_11/BijectionsNettyInstrumentation.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,16 +38,15 @@ public void transform(TypeTransformer transformer) {
3838
public static class FullRequestAdvice {
3939
@Advice.OnMethodExit(suppress = Throwable.class, inline = false)
4040
public static void onApplyExit(
41-
@Advice.Return(readOnly = false) Request ret, @Advice.Argument(0) FullHttpRequest in) {
41+
@Advice.Return Request ret, @Advice.Argument(0) FullHttpRequest in) {
4242
Helpers.chainContextToFinagle(in, ret);
4343
}
4444
}
4545

4646
@SuppressWarnings("unused")
4747
public static class ChunkedRequestAdvice {
4848
@Advice.OnMethodExit(suppress = Throwable.class, inline = false)
49-
public static void onApplyExit(
50-
@Advice.Return(readOnly = false) Request ret, @Advice.Argument(0) HttpRequest in) {
49+
public static void onApplyExit(@Advice.Return Request ret, @Advice.Argument(0) HttpRequest in) {
5150
Helpers.chainContextToFinagle(in, ret);
5251
}
5352
}

instrumentation/finagle-http-23.11/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/finaglehttp/v23_11/FutureInstrumentation.java

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
1515
import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer;
1616
import net.bytebuddy.asm.Advice;
17+
import net.bytebuddy.asm.Advice.AssignReturned.ToArguments.ToArgument;
1718
import net.bytebuddy.description.type.TypeDescription;
1819
import net.bytebuddy.matcher.ElementMatcher;
1920
import scala.Function1;
@@ -39,19 +40,21 @@ public void transform(TypeTransformer transformer) {
3940

4041
@SuppressWarnings("unused")
4142
public static class RespondAdvice {
42-
@Advice.OnMethodEnter(suppress = Throwable.class, inline = false)
43-
public static void onEnter(
44-
@Advice.Argument(value = 0, readOnly = false) Function1<Try<?>, BoxedUnit> f) {
45-
f = TwitterUtilCoreHelpers.wrap(Context.current(), f);
43+
@Advice.OnMethodEnter(suppress = Throwable.class)
44+
@Advice.AssignReturned.ToArguments(@ToArgument(0))
45+
public static Function1<Try<?>, BoxedUnit> onEnter(
46+
@Advice.Argument(0) Function1<Try<?>, BoxedUnit> f) {
47+
return TwitterUtilCoreHelpers.wrap(Context.current(), f);
4648
}
4749
}
4850

4951
@SuppressWarnings("unused")
5052
public static class TransformAdvice {
51-
@Advice.OnMethodEnter(suppress = Throwable.class, inline = false)
52-
public static void onEnter(
53-
@Advice.Argument(value = 0, readOnly = false) Function1<Try<?>, Future<?>> f) {
54-
f = TwitterUtilCoreHelpers.wrap(Context.current(), f);
53+
@Advice.OnMethodEnter(suppress = Throwable.class)
54+
@Advice.AssignReturned.ToArguments(@ToArgument(0))
55+
public static Function1<Try<?>, Future<?>> onEnter(
56+
@Advice.Argument(0) Function1<Try<?>, Future<?>> f) {
57+
return TwitterUtilCoreHelpers.wrap(Context.current(), f);
5558
}
5659
}
5760
}

instrumentation/finagle-http-23.11/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/finaglehttp/v23_11/FuturePoolInstrumentation.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
1313
import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer;
1414
import net.bytebuddy.asm.Advice;
15+
import net.bytebuddy.asm.Advice.AssignReturned.ToArguments.ToArgument;
1516
import net.bytebuddy.description.type.TypeDescription;
1617
import net.bytebuddy.matcher.ElementMatcher;
1718
import scala.Function0;
@@ -35,9 +36,10 @@ public void transform(TypeTransformer transformer) {
3536

3637
@SuppressWarnings("unused")
3738
public static class ApplyAdvice {
38-
@Advice.OnMethodEnter(suppress = Throwable.class, inline = false)
39-
public static void onApplyEnter(@Advice.Argument(value = 0, readOnly = false) Function0<?> f) {
40-
f = TwitterUtilCoreHelpers.wrap(Context.current(), f);
39+
@Advice.OnMethodEnter(suppress = Throwable.class)
40+
@Advice.AssignReturned.ToArguments(@ToArgument(0))
41+
public static Function0<?> onApplyEnter(@Advice.Argument(0) Function0<?> f) {
42+
return TwitterUtilCoreHelpers.wrap(Context.current(), f);
4143
}
4244
}
4345
}

instrumentation/finagle-http-23.11/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/finaglehttp/v23_11/PromiseInterruptibleInstrumentation.java

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,11 @@
88
import static net.bytebuddy.matcher.ElementMatchers.isConstructor;
99
import static net.bytebuddy.matcher.ElementMatchers.named;
1010

11-
import com.twitter.util.Promise;
1211
import io.opentelemetry.context.Context;
1312
import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
1413
import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer;
1514
import net.bytebuddy.asm.Advice;
15+
import net.bytebuddy.asm.Advice.AssignReturned.ToArguments.ToArgument;
1616
import net.bytebuddy.description.type.TypeDescription;
1717
import net.bytebuddy.matcher.ElementMatcher;
1818
import scala.PartialFunction;
@@ -38,17 +38,17 @@ public void transform(TypeTransformer transformer) {
3838
public static class ConstructorAdvice {
3939

4040
@Advice.OnMethodExit(suppress = Throwable.class, inline = false)
41-
public static void onEnter(
42-
@Advice.This Promise.Interruptible thiz,
43-
@Advice.Argument(value = 1, readOnly = false)
44-
PartialFunction<Throwable, BoxedUnit> handler) {
45-
if (!(handler instanceof TwitterUtilCoreHelpers.InterruptibleWithContext)) {
46-
Context context = Context.current();
47-
handler =
48-
context != Context.root()
49-
? new TwitterUtilCoreHelpers.InterruptibleWithContext(context, handler)
50-
: handler;
41+
@Advice.AssignReturned.ToArguments(@ToArgument(1))
42+
public static PartialFunction<Throwable, BoxedUnit> onEnter(
43+
@Advice.Argument(1) PartialFunction<Throwable, BoxedUnit> handler) {
44+
if (handler instanceof TwitterUtilCoreHelpers.InterruptibleWithContext) {
45+
return handler;
5146
}
47+
Context context = Context.current();
48+
if (context == Context.root()) {
49+
return handler;
50+
}
51+
return new TwitterUtilCoreHelpers.InterruptibleWithContext(context, handler);
5252
}
5353
}
5454
}

instrumentation/finagle-http-23.11/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/finaglehttp/v23_11/PromiseKInstrumentation.java

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
import com.twitter.util.Promise;
1414
import io.opentelemetry.context.Context;
1515
import io.opentelemetry.context.Scope;
16-
import io.opentelemetry.instrumentation.api.util.VirtualField;
1716
import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
1817
import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer;
1918
import net.bytebuddy.asm.Advice;
@@ -50,9 +49,7 @@ public static class TrapContextAdvice {
5049
public static void onExit(@Advice.This Promise.K thiz) {
5150
Context current = Context.current();
5251
if (current != Context.root()) {
53-
VirtualField<Promise.K, Context> contextVirtualField =
54-
VirtualField.find(Promise.K.class, Context.class);
55-
contextVirtualField.set(thiz, current);
52+
TwitterUtilCoreHelpers.PROMISE_K_CONTEXT_FIELD.set(thiz, current);
5653
}
5754
}
5855
}
@@ -61,7 +58,7 @@ public static void onExit(@Advice.This Promise.K thiz) {
6158
public static class ApplyAdvice {
6259
@Advice.OnMethodEnter(suppress = Throwable.class, inline = false)
6360
public static Scope onApplyEnter(@Advice.This Promise.K thiz) {
64-
Context savedContext = VirtualField.find(Promise.K.class, Context.class).get(thiz);
61+
Context savedContext = TwitterUtilCoreHelpers.PROMISE_K_CONTEXT_FIELD.get(thiz);
6562
if (savedContext != null) {
6663
return savedContext.makeCurrent();
6764
}

instrumentation/finagle-http-23.11/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/finaglehttp/v23_11/TwitterUtilCoreHelpers.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,20 @@
55

66
package io.opentelemetry.javaagent.instrumentation.finaglehttp.v23_11;
77

8+
import com.twitter.util.Promise;
89
import io.opentelemetry.context.Context;
910
import io.opentelemetry.context.Scope;
11+
import io.opentelemetry.instrumentation.api.util.VirtualField;
1012
import scala.Function0;
1113
import scala.Function1;
1214
import scala.PartialFunction;
1315
import scala.runtime.AbstractPartialFunction;
1416
import scala.runtime.BoxedUnit;
1517

1618
public class TwitterUtilCoreHelpers {
19+
public static final VirtualField<Promise.K, Context> PROMISE_K_CONTEXT_FIELD =
20+
VirtualField.find(Promise.K.class, Context.class);
21+
1722
private TwitterUtilCoreHelpers() {}
1823

1924
public static class InterruptibleWithContext

0 commit comments

Comments
 (0)