From 08d982978191838b627625e0ba8a13e2633b609c Mon Sep 17 00:00:00 2001 From: otelbot <197425009+otelbot@users.noreply.github.com> Date: Sat, 2 May 2026 17:19:12 +0000 Subject: [PATCH 1/8] Review fixes for tomcat-7.0:javaagent Automated code review of instrumentation/tomcat/tomcat-7.0/javaagent. --- instrumentation/tomcat/tomcat-7.0/javaagent/build.gradle.kts | 2 +- .../tomcat/v7_0/Tomcat7InstrumentationModule.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/instrumentation/tomcat/tomcat-7.0/javaagent/build.gradle.kts b/instrumentation/tomcat/tomcat-7.0/javaagent/build.gradle.kts index 372a78b96a5e..7e43aae79a81 100644 --- a/instrumentation/tomcat/tomcat-7.0/javaagent/build.gradle.kts +++ b/instrumentation/tomcat/tomcat-7.0/javaagent/build.gradle.kts @@ -34,7 +34,7 @@ dependencies { } tasks { - withType().configureEach { + test { jvmArgs("-Dotel.instrumentation.servlet.experimental.capture-request-parameters=test-parameter") // required on jdk17 jvmArgs("--add-opens=java.base/java.util=ALL-UNNAMED") diff --git a/instrumentation/tomcat/tomcat-7.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/tomcat/v7_0/Tomcat7InstrumentationModule.java b/instrumentation/tomcat/tomcat-7.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/tomcat/v7_0/Tomcat7InstrumentationModule.java index dcf1c5bed3eb..e9b17c8c5119 100644 --- a/instrumentation/tomcat/tomcat-7.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/tomcat/v7_0/Tomcat7InstrumentationModule.java +++ b/instrumentation/tomcat/tomcat-7.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/tomcat/v7_0/Tomcat7InstrumentationModule.java @@ -51,7 +51,7 @@ public List typeInstrumentations() { @SuppressWarnings("unused") public static class Tomcat7AttachResponseAdvice { - @Advice.OnMethodExit(onThrowable = Throwable.class, suppress = Throwable.class, inline = false) + @Advice.OnMethodExit(suppress = Throwable.class, inline = false) public static void attachResponse( @Advice.Argument(2) Response response, @Advice.Return boolean success) { From 6084b3b190fb07f954dba4273a8ec43ce4ce1411 Mon Sep 17 00:00:00 2001 From: otelbot <197425009+otelbot@users.noreply.github.com> Date: Sat, 2 May 2026 17:24:43 +0000 Subject: [PATCH 2/8] Review fixes for tomcat-jdbc:javaagent Automated code review of instrumentation/tomcat/tomcat-jdbc/javaagent. --- instrumentation/tomcat/tomcat-jdbc/metadata.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/instrumentation/tomcat/tomcat-jdbc/metadata.yaml b/instrumentation/tomcat/tomcat-jdbc/metadata.yaml index f5d3efc4b255..decc13f9c51a 100644 --- a/instrumentation/tomcat/tomcat-jdbc/metadata.yaml +++ b/instrumentation/tomcat/tomcat-jdbc/metadata.yaml @@ -5,6 +5,7 @@ semantic_conventions: - DATABASE_POOL_METRICS configurations: - name: otel.semconv-stability.opt-in + declarative_name: general.semconv_stability.opt_in description: > Opt-in to emit stable semantic conventions instead of the old experimental semantic conventions. Accepts a comma-separated list of semantic convention From badeeecc8f2795fbc7fcae4d40e70a05116dd867 Mon Sep 17 00:00:00 2001 From: otelbot <197425009+otelbot@users.noreply.github.com> Date: Sat, 2 May 2026 17:27:57 +0000 Subject: [PATCH 3/8] Review fixes for twilio-6.6:javaagent Automated code review of instrumentation/twilio-6.6/javaagent. --- .../twilio/v6_6/TwilioAsyncInstrumentation.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/instrumentation/twilio-6.6/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/twilio/v6_6/TwilioAsyncInstrumentation.java b/instrumentation/twilio-6.6/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/twilio/v6_6/TwilioAsyncInstrumentation.java index 52ebdf2df77b..91961436180a 100644 --- a/instrumentation/twilio-6.6/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/twilio/v6_6/TwilioAsyncInstrumentation.java +++ b/instrumentation/twilio-6.6/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/twilio/v6_6/TwilioAsyncInstrumentation.java @@ -8,7 +8,6 @@ import static io.opentelemetry.javaagent.extension.matcher.AgentElementMatchers.extendsClass; import static io.opentelemetry.javaagent.extension.matcher.AgentElementMatchers.hasClassesNamed; import static io.opentelemetry.javaagent.instrumentation.twilio.v6_6.TwilioSingletons.instrumenter; -import static io.opentelemetry.javaagent.instrumentation.twilio.v6_6.TwilioSingletons.spanName; import static net.bytebuddy.matcher.ElementMatchers.isAbstract; import static net.bytebuddy.matcher.ElementMatchers.isPublic; import static net.bytebuddy.matcher.ElementMatchers.named; @@ -83,7 +82,7 @@ private AdviceScope(Context context, Scope scope, String spanName) { @Nullable public static AdviceScope start(Object target, String methodName) { Context parentContext = Context.current(); - String spanName = spanName(target, methodName); + String spanName = TwilioSingletons.spanName(target, methodName); if (!instrumenter().shouldStart(parentContext, spanName)) { return null; } From 6d075fcda0845e887a052b47723526f661fad97c Mon Sep 17 00:00:00 2001 From: otelbot <197425009+otelbot@users.noreply.github.com> Date: Sat, 2 May 2026 17:31:45 +0000 Subject: [PATCH 4/8] Review fixes for undertow-1.4:bootstrap Automated code review of instrumentation/undertow-1.4/bootstrap. --- .../opentelemetry/javaagent/bootstrap/undertow/KeyHolder.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/instrumentation/undertow-1.4/bootstrap/src/main/java/io/opentelemetry/javaagent/bootstrap/undertow/KeyHolder.java b/instrumentation/undertow-1.4/bootstrap/src/main/java/io/opentelemetry/javaagent/bootstrap/undertow/KeyHolder.java index b076eca94b36..3b6945405f46 100644 --- a/instrumentation/undertow-1.4/bootstrap/src/main/java/io/opentelemetry/javaagent/bootstrap/undertow/KeyHolder.java +++ b/instrumentation/undertow-1.4/bootstrap/src/main/java/io/opentelemetry/javaagent/bootstrap/undertow/KeyHolder.java @@ -9,6 +9,7 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; import java.util.function.Supplier; +import javax.annotation.Nullable; /** * Undertow's {@code io.undertow.server.HttpServerExchange} uses {@code @@ -33,6 +34,7 @@ public final class KeyHolder { private static final ConcurrentMap, Object> contextKeys = new ConcurrentHashMap<>(); + @Nullable public static Object get(Class keyType) { return contextKeys.get(keyType); } From e3054731b50b0480ac476525d5d042c03fafacd7 Mon Sep 17 00:00:00 2001 From: otelbot <197425009+otelbot@users.noreply.github.com> Date: Sat, 2 May 2026 17:34:54 +0000 Subject: [PATCH 5/8] Review fixes for undertow-1.4:javaagent Automated code review of instrumentation/undertow-1.4/javaagent. --- .../instrumentation/undertow/v1_4/EndSpanListener.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/instrumentation/undertow-1.4/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/undertow/v1_4/EndSpanListener.java b/instrumentation/undertow-1.4/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/undertow/v1_4/EndSpanListener.java index 3cc6f4d88e9d..9d969726bc80 100644 --- a/instrumentation/undertow-1.4/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/undertow/v1_4/EndSpanListener.java +++ b/instrumentation/undertow-1.4/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/undertow/v1_4/EndSpanListener.java @@ -11,10 +11,10 @@ import io.undertow.server.ExchangeCompletionListener; import io.undertow.server.HttpServerExchange; -public class EndSpanListener implements ExchangeCompletionListener { +class EndSpanListener implements ExchangeCompletionListener { private final Context context; - public EndSpanListener(Context context) { + EndSpanListener(Context context) { this.context = context; } From 2c885b962f831ca9f109f630c562eacd6b33c017 Mon Sep 17 00:00:00 2001 From: otelbot <197425009+otelbot@users.noreply.github.com> Date: Sat, 2 May 2026 17:46:36 +0000 Subject: [PATCH 6/8] Review fixes for vertx-http-client-3.0:javaagent Automated code review of instrumentation/vertx/vertx-http-client/vertx-http-client-3.0/javaagent. --- .../httpclient/v3_0/Vertx3HttpAttributesGetter.java | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/instrumentation/vertx/vertx-http-client/vertx-http-client-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/vertx/httpclient/v3_0/Vertx3HttpAttributesGetter.java b/instrumentation/vertx/vertx-http-client/vertx-http-client-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/vertx/httpclient/v3_0/Vertx3HttpAttributesGetter.java index f19ea6a68681..2445f38ea3c9 100644 --- a/instrumentation/vertx/vertx-http-client/vertx-http-client-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/vertx/httpclient/v3_0/Vertx3HttpAttributesGetter.java +++ b/instrumentation/vertx/vertx-http-client/vertx-http-client-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/vertx/httpclient/v3_0/Vertx3HttpAttributesGetter.java @@ -5,23 +5,21 @@ package io.opentelemetry.javaagent.instrumentation.vertx.httpclient.v3_0; -import io.opentelemetry.instrumentation.api.util.VirtualField; +import static io.opentelemetry.javaagent.instrumentation.vertx.httpclient.v3_0.VertxClientSingletons.REQUEST_INFO; + import io.opentelemetry.javaagent.instrumentation.vertx.httpclient.common.v3_0.AbstractVertxHttpAttributesGetter; import io.vertx.core.http.HttpClientRequest; import javax.annotation.Nullable; final class Vertx3HttpAttributesGetter extends AbstractVertxHttpAttributesGetter { - private static final VirtualField requestInfoField = - VirtualField.find(HttpClientRequest.class, VertxRequestInfo.class); - @Override public String getUrlFull(HttpClientRequest request) { String uri = request.uri(); // Uri should be relative, but it is possible to misuse vert.x api and pass an absolute uri // where relative is expected. if (!isAbsolute(uri)) { - VertxRequestInfo requestInfo = requestInfoField.get(request); + VertxRequestInfo requestInfo = REQUEST_INFO.get(request); if (requestInfo != null) { uri = absoluteUri(requestInfo, uri); } @@ -32,7 +30,7 @@ public String getUrlFull(HttpClientRequest request) { @Nullable @Override public String getServerAddress(HttpClientRequest request) { - VertxRequestInfo requestInfo = requestInfoField.get(request); + VertxRequestInfo requestInfo = REQUEST_INFO.get(request); if (requestInfo == null) { return null; } @@ -42,7 +40,7 @@ public String getServerAddress(HttpClientRequest request) { @Nullable @Override public Integer getServerPort(HttpClientRequest request) { - VertxRequestInfo requestInfo = requestInfoField.get(request); + VertxRequestInfo requestInfo = REQUEST_INFO.get(request); if (requestInfo == null) { return null; } From 5876caadee78c27a6b5499b5fa870568104918a9 Mon Sep 17 00:00:00 2001 From: otelbot <197425009+otelbot@users.noreply.github.com> Date: Sat, 2 May 2026 17:50:19 +0000 Subject: [PATCH 7/8] Review fixes for vertx-http-client-4.0:javaagent Automated code review of instrumentation/vertx/vertx-http-client/vertx-http-client-4.0/javaagent. --- .../instrumentation/vertx/httpclient/v4_0/HandlerWrapper.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/instrumentation/vertx/vertx-http-client/vertx-http-client-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/vertx/httpclient/v4_0/HandlerWrapper.java b/instrumentation/vertx/vertx-http-client/vertx-http-client-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/vertx/httpclient/v4_0/HandlerWrapper.java index 15fbd4dc24ca..40ef891e1806 100644 --- a/instrumentation/vertx/vertx-http-client/vertx-http-client-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/vertx/httpclient/v4_0/HandlerWrapper.java +++ b/instrumentation/vertx/vertx-http-client/vertx-http-client-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/vertx/httpclient/v4_0/HandlerWrapper.java @@ -30,7 +30,7 @@ public static Handler wrap(@Nullable Handler handler) { @Override public void handle(T t) { - try (Scope ignore = context.makeCurrent()) { + try (Scope ignored = context.makeCurrent()) { delegate.handle(t); } } From 032d8df05966d7d6a8730028eeb530b4591650ec Mon Sep 17 00:00:00 2001 From: otelbot <197425009+otelbot@users.noreply.github.com> Date: Sat, 2 May 2026 18:02:15 +0000 Subject: [PATCH 8/8] Review fixes for vertx-http-client-5.0:javaagent Automated code review of instrumentation/vertx/vertx-http-client/vertx-http-client-5.0/javaagent. --- .../httpclient/v5_0/HttpRequestInstrumentation.java | 6 ++---- .../vertx/httpclient/v5_0/VertxHttpClientTest.java | 12 +++++++++--- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/instrumentation/vertx/vertx-http-client/vertx-http-client-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/vertx/httpclient/v5_0/HttpRequestInstrumentation.java b/instrumentation/vertx/vertx-http-client/vertx-http-client-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/vertx/httpclient/v5_0/HttpRequestInstrumentation.java index 462d869924c4..be87181d2b6a 100644 --- a/instrumentation/vertx/vertx-http-client/vertx-http-client-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/vertx/httpclient/v5_0/HttpRequestInstrumentation.java +++ b/instrumentation/vertx/vertx-http-client/vertx-http-client-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/vertx/httpclient/v5_0/HttpRequestInstrumentation.java @@ -9,7 +9,6 @@ import static io.opentelemetry.javaagent.extension.matcher.AgentElementMatchers.implementsInterface; import static io.opentelemetry.javaagent.instrumentation.vertx.httpclient.v5_0.VertxClientSingletons.CONTEXTS; import static io.opentelemetry.javaagent.instrumentation.vertx.httpclient.v5_0.VertxClientSingletons.instrumenter; -import static net.bytebuddy.matcher.ElementMatchers.isMethod; import static net.bytebuddy.matcher.ElementMatchers.isPrivate; import static net.bytebuddy.matcher.ElementMatchers.nameStartsWith; import static net.bytebuddy.matcher.ElementMatchers.named; @@ -60,8 +59,7 @@ public ElementMatcher typeMatcher() { @Override public void transform(TypeTransformer transformer) { transformer.applyAdviceToMethod( - isMethod().and(nameStartsWith("end").or(named("sendHead"))), - getClass().getName() + "$EndRequestAdvice"); + nameStartsWith("end").or(named("sendHead")), getClass().getName() + "$EndRequestAdvice"); transformer.applyAdviceToMethod( named("handleException"), getClass().getName() + "$HandleExceptionAdvice"); @@ -72,7 +70,7 @@ public void transform(TypeTransformer transformer) { getClass().getName() + "$HandleResponseAdvice"); transformer.applyAdviceToMethod( - isMethod().and(isPrivate()).and(nameStartsWith("write").or(nameStartsWith("connected"))), + isPrivate().and(nameStartsWith("write").or(nameStartsWith("connected"))), getClass().getName() + "$MountContextAdvice"); transformer.applyAdviceToMethod( diff --git a/instrumentation/vertx/vertx-http-client/vertx-http-client-5.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/vertx/httpclient/v5_0/VertxHttpClientTest.java b/instrumentation/vertx/vertx-http-client/vertx-http-client-5.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/vertx/httpclient/v5_0/VertxHttpClientTest.java index 605138a18e60..fa00b5784347 100644 --- a/instrumentation/vertx/vertx-http-client/vertx-http-client-5.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/vertx/httpclient/v5_0/VertxHttpClientTest.java +++ b/instrumentation/vertx/vertx-http-client/vertx-http-client-5.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/vertx/httpclient/v5_0/VertxHttpClientTest.java @@ -26,6 +26,7 @@ import java.util.Map; import java.util.Set; import java.util.concurrent.CompletableFuture; +import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.condition.OS; import org.junit.jupiter.api.extension.RegisterExtension; @@ -34,15 +35,20 @@ class VertxHttpClientTest extends AbstractHttpClientTest buildRequest( String method, URI uri, Map headers) {