Skip to content

Commit 033e584

Browse files
committed
remove invalid virtual field usages
1 parent a52fb8e commit 033e584

File tree

5 files changed

+24
-26
lines changed

5 files changed

+24
-26
lines changed

instrumentation/async-http-client/async-http-client-1.9/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/asynchttpclient/v1_9/ResponseInstrumentation.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,8 @@
1414
import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
1515

1616
import com.ning.http.client.AsyncCompletionHandler;
17-
import com.ning.http.client.AsyncHandler;
1817
import com.ning.http.client.Response;
1918
import io.opentelemetry.context.Scope;
20-
import io.opentelemetry.instrumentation.api.util.VirtualField;
2119
import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
2220
import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer;
2321
import net.bytebuddy.asm.Advice;
@@ -55,7 +53,6 @@ public static class OnCompletedAdvice {
5553
public static Scope onEnter(
5654
@Advice.This AsyncCompletionHandler<?> handler, @Advice.Argument(0) Response response) {
5755

58-
VirtualField<AsyncHandler<?>, AsyncHandlerData> virtualField = virtualField();
5956
AsyncHandlerData data = virtualField().get(handler);
6057
if (data == null) {
6158
return null;

instrumentation/async-http-client/async-http-client-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/asynchttpclient/v2_0/AsyncCompletionHandlerInstrumentation.java

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,21 +6,20 @@
66
package io.opentelemetry.javaagent.instrumentation.asynchttpclient.v2_0;
77

88
import static io.opentelemetry.javaagent.extension.matcher.AgentElementMatchers.hasClassesNamed;
9+
import static io.opentelemetry.javaagent.instrumentation.asynchttpclient.v2_0.AsyncHttpClientSingletons.asyncHandlerVirtualField;
910
import static io.opentelemetry.javaagent.instrumentation.asynchttpclient.v2_0.AsyncHttpClientSingletons.instrumenter;
1011
import static net.bytebuddy.matcher.ElementMatchers.hasSuperClass;
1112
import static net.bytebuddy.matcher.ElementMatchers.isPublic;
1213
import static net.bytebuddy.matcher.ElementMatchers.named;
1314
import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
1415

1516
import io.opentelemetry.context.Scope;
16-
import io.opentelemetry.instrumentation.api.util.VirtualField;
1717
import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
1818
import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer;
1919
import net.bytebuddy.asm.Advice;
2020
import net.bytebuddy.description.type.TypeDescription;
2121
import net.bytebuddy.matcher.ElementMatcher;
2222
import org.asynchttpclient.AsyncCompletionHandler;
23-
import org.asynchttpclient.AsyncHandler;
2423
import org.asynchttpclient.Response;
2524

2625
public class AsyncCompletionHandlerInstrumentation implements TypeInstrumentation {
@@ -54,13 +53,11 @@ public static class OnCompletedAdvice {
5453
public static Scope onEnter(
5554
@Advice.This AsyncCompletionHandler<?> handler, @Advice.Argument(0) Response response) {
5655

57-
VirtualField<AsyncHandler<?>, RequestContext> virtualField =
58-
VirtualField.find(AsyncHandler.class, RequestContext.class);
59-
RequestContext requestContext = virtualField.get(handler);
56+
RequestContext requestContext = asyncHandlerVirtualField().get(handler);
6057
if (requestContext == null) {
6158
return null;
6259
}
63-
virtualField.set(handler, null);
60+
asyncHandlerVirtualField().set(handler, null);
6461
instrumenter().end(requestContext.getContext(), requestContext, response, null);
6562
return requestContext.getParentContext().makeCurrent();
6663
}
@@ -80,13 +77,11 @@ public static class OnThrowableAdvice {
8077
public static Scope onEnter(
8178
@Advice.This AsyncCompletionHandler<?> handler, @Advice.Argument(0) Throwable throwable) {
8279

83-
VirtualField<AsyncHandler<?>, RequestContext> virtualField =
84-
VirtualField.find(AsyncHandler.class, RequestContext.class);
85-
RequestContext requestContext = virtualField.get(handler);
80+
RequestContext requestContext = asyncHandlerVirtualField().get(handler);
8681
if (requestContext == null) {
8782
return null;
8883
}
89-
virtualField.set(handler, null);
84+
asyncHandlerVirtualField().set(handler, null);
9085
instrumenter().end(requestContext.getContext(), requestContext, null, throwable);
9186
return requestContext.getParentContext().makeCurrent();
9287
}

instrumentation/async-http-client/async-http-client-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/asynchttpclient/v2_0/AsyncHttpClientInstrumentation.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77

88
import static io.opentelemetry.javaagent.bootstrap.Java8BytecodeBridge.currentContext;
99
import static io.opentelemetry.javaagent.extension.matcher.AgentElementMatchers.implementsInterface;
10+
import static io.opentelemetry.javaagent.instrumentation.asynchttpclient.v2_0.AsyncHttpClientSingletons.asyncHandlerVirtualField;
1011
import static io.opentelemetry.javaagent.instrumentation.asynchttpclient.v2_0.AsyncHttpClientSingletons.instrumenter;
11-
import static io.opentelemetry.javaagent.instrumentation.asynchttpclient.v2_0.AsyncHttpClientSingletons.virtualField;
1212
import static net.bytebuddy.matcher.ElementMatchers.isPublic;
1313
import static net.bytebuddy.matcher.ElementMatchers.named;
1414
import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
@@ -71,7 +71,7 @@ public static Scope onEnter(
7171
// 2.1, so the instrumentation module will need to be essentially duplicated (or a common
7272
// module introduced)
7373

74-
virtualField().set(handler, requestContext);
74+
asyncHandlerVirtualField().set(handler, requestContext);
7575
return context.makeCurrent();
7676
}
7777

instrumentation/async-http-client/async-http-client-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/asynchttpclient/v2_0/AsyncHttpClientSingletons.java

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,20 @@
55

66
package io.opentelemetry.javaagent.instrumentation.asynchttpclient.v2_0;
77

8+
import io.opentelemetry.context.Context;
89
import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter;
910
import io.opentelemetry.instrumentation.api.util.VirtualField;
1011
import io.opentelemetry.javaagent.bootstrap.internal.JavaagentHttpClientInstrumenters;
1112
import org.asynchttpclient.AsyncHandler;
13+
import org.asynchttpclient.Request;
1214
import org.asynchttpclient.Response;
1315

1416
public final class AsyncHttpClientSingletons {
1517
private static final String INSTRUMENTATION_NAME = "io.opentelemetry.async-http-client-2.0";
1618

1719
private static final Instrumenter<RequestContext, Response> INSTRUMENTER;
18-
private static final VirtualField<AsyncHandler<?>, RequestContext> VIRTUAL_FIELD;
20+
private static final VirtualField<AsyncHandler<?>, RequestContext> ASYNC_HANDLER_VIRTUAL_FIELD;
21+
private static final VirtualField<Request, Context> REQUEST_VIRTUAL_FIELD;
1922

2023
static {
2124
INSTRUMENTER =
@@ -24,15 +27,20 @@ public final class AsyncHttpClientSingletons {
2427
new AsyncHttpClientHttpAttributesGetter(),
2528
HttpHeaderSetter.INSTANCE);
2629

27-
VIRTUAL_FIELD = VirtualField.find(AsyncHandler.class, RequestContext.class);
30+
ASYNC_HANDLER_VIRTUAL_FIELD = VirtualField.find(AsyncHandler.class, RequestContext.class);
31+
REQUEST_VIRTUAL_FIELD = VirtualField.find(Request.class, Context.class);
2832
}
2933

3034
public static Instrumenter<RequestContext, Response> instrumenter() {
3135
return INSTRUMENTER;
3236
}
3337

34-
public static VirtualField<AsyncHandler<?>, RequestContext> virtualField() {
35-
return VIRTUAL_FIELD;
38+
public static VirtualField<AsyncHandler<?>, RequestContext> asyncHandlerVirtualField() {
39+
return ASYNC_HANDLER_VIRTUAL_FIELD;
40+
}
41+
42+
public static VirtualField<Request, Context> requestVirtualField() {
43+
return REQUEST_VIRTUAL_FIELD;
3644
}
3745

3846
private AsyncHttpClientSingletons() {}

instrumentation/async-http-client/async-http-client-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/asynchttpclient/v2_0/NettyRequestSenderInstrumentation.java

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,21 +5,21 @@
55

66
package io.opentelemetry.javaagent.instrumentation.asynchttpclient.v2_0;
77

8+
import static io.opentelemetry.javaagent.instrumentation.asynchttpclient.v2_0.AsyncHttpClientSingletons.asyncHandlerVirtualField;
9+
import static io.opentelemetry.javaagent.instrumentation.asynchttpclient.v2_0.AsyncHttpClientSingletons.requestVirtualField;
810
import static net.bytebuddy.matcher.ElementMatchers.isPublic;
911
import static net.bytebuddy.matcher.ElementMatchers.named;
1012
import static net.bytebuddy.matcher.ElementMatchers.returns;
1113
import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
1214

1315
import io.opentelemetry.context.Context;
1416
import io.opentelemetry.context.Scope;
15-
import io.opentelemetry.instrumentation.api.util.VirtualField;
1617
import io.opentelemetry.javaagent.bootstrap.Java8BytecodeBridge;
1718
import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
1819
import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer;
1920
import net.bytebuddy.asm.Advice;
2021
import net.bytebuddy.description.type.TypeDescription;
2122
import net.bytebuddy.matcher.ElementMatcher;
22-
import org.asynchttpclient.AsyncHandler;
2323
import org.asynchttpclient.Request;
2424
import org.asynchttpclient.netty.NettyResponseFuture;
2525

@@ -59,8 +59,7 @@ public static class AttachContextAdvice {
5959

6060
@Advice.OnMethodEnter
6161
public static void attachContext(@Advice.Argument(0) Request request) {
62-
VirtualField.find(Request.class, Context.class)
63-
.set(request, Java8BytecodeBridge.currentContext());
62+
requestVirtualField().set(request, Java8BytecodeBridge.currentContext());
6463
}
6564
}
6665

@@ -70,7 +69,7 @@ public static class MountContextAdvice {
7069
@Advice.OnMethodEnter
7170
public static Scope mountContext(@Advice.Argument(0) NettyResponseFuture<?> responseFuture) {
7271
Request request = responseFuture.getCurrentRequest();
73-
Context context = VirtualField.find(Request.class, Context.class).get(request);
72+
Context context = requestVirtualField().get(request);
7473
return context == null ? null : context.makeCurrent();
7574
}
7675

@@ -88,8 +87,7 @@ public static class RememberNettyRequestAdvice {
8887
@Advice.OnMethodExit
8988
public static void rememberNettyRequest(@Advice.Return NettyResponseFuture<?> responseFuture) {
9089
RequestContext requestContext =
91-
VirtualField.find(AsyncHandler.class, RequestContext.class)
92-
.get(responseFuture.getAsyncHandler());
90+
asyncHandlerVirtualField().get(responseFuture.getAsyncHandler());
9391
if (requestContext != null) {
9492
requestContext.setNettyRequest(responseFuture.getNettyRequest());
9593
}

0 commit comments

Comments
 (0)