Skip to content

Commit 21f968a

Browse files
author
Mateusz Rzeszutek
authored
Add missing return type matchers to the executor instrumentation (#5294)
1 parent 1077258 commit 21f968a

File tree

1 file changed

+18
-7
lines changed

1 file changed

+18
-7
lines changed

instrumentation/executors/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/javaconcurrent/JavaExecutorInstrumentation.java

+18-7
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,11 @@
55

66
package io.opentelemetry.javaagent.instrumentation.javaconcurrent;
77

8-
import static net.bytebuddy.matcher.ElementMatchers.nameMatches;
8+
import static io.opentelemetry.javaagent.extension.matcher.AgentElementMatchers.hasSuperType;
9+
import static net.bytebuddy.matcher.ElementMatchers.is;
910
import static net.bytebuddy.matcher.ElementMatchers.named;
11+
import static net.bytebuddy.matcher.ElementMatchers.namedOneOf;
12+
import static net.bytebuddy.matcher.ElementMatchers.returns;
1013
import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
1114
import static net.bytebuddy.matcher.ElementMatchers.takesArguments;
1215

@@ -39,26 +42,34 @@ public void transform(TypeTransformer transformer) {
3942
named("execute").and(takesArgument(0, ForkJoinTask.class)),
4043
JavaExecutorInstrumentation.class.getName() + "$SetJavaForkJoinStateAdvice");
4144
transformer.applyAdviceToMethod(
42-
named("submit").and(takesArgument(0, Runnable.class)),
45+
named("submit")
46+
.and(takesArgument(0, Runnable.class))
47+
.and(returns(hasSuperType(is(Future.class)))),
4348
JavaExecutorInstrumentation.class.getName() + "$SetSubmitRunnableStateAdvice");
4449
transformer.applyAdviceToMethod(
45-
named("submit").and(takesArgument(0, Callable.class)),
50+
named("submit")
51+
.and(takesArgument(0, Callable.class))
52+
.and(returns(hasSuperType(is(Future.class)))),
4653
JavaExecutorInstrumentation.class.getName() + "$SetCallableStateAdvice");
4754
transformer.applyAdviceToMethod(
4855
named("submit").and(takesArgument(0, ForkJoinTask.class)),
4956
JavaExecutorInstrumentation.class.getName() + "$SetJavaForkJoinStateAdvice");
5057
transformer.applyAdviceToMethod(
51-
nameMatches("invoke(Any|All)$").and(takesArgument(0, Collection.class)),
58+
namedOneOf("invokeAny", "invokeAll").and(takesArgument(0, Collection.class)),
5259
JavaExecutorInstrumentation.class.getName()
5360
+ "$SetCallableStateForCallableCollectionAdvice");
5461
transformer.applyAdviceToMethod(
55-
nameMatches("invoke").and(takesArgument(0, ForkJoinTask.class)),
62+
named("invoke").and(takesArgument(0, ForkJoinTask.class)),
5663
JavaExecutorInstrumentation.class.getName() + "$SetJavaForkJoinStateAdvice");
5764
transformer.applyAdviceToMethod(
58-
named("schedule").and(takesArgument(0, Runnable.class)),
65+
named("schedule")
66+
.and(takesArgument(0, Runnable.class))
67+
.and(returns(hasSuperType(is(Future.class)))),
5968
JavaExecutorInstrumentation.class.getName() + "$SetSubmitRunnableStateAdvice");
6069
transformer.applyAdviceToMethod(
61-
named("schedule").and(takesArgument(0, Callable.class)),
70+
named("schedule")
71+
.and(takesArgument(0, Callable.class))
72+
.and(returns(hasSuperType(is(Future.class)))),
6273
JavaExecutorInstrumentation.class.getName() + "$SetCallableStateAdvice");
6374
}
6475

0 commit comments

Comments
 (0)