From 7ff4ca98fa13e59fd0bd3196213c8a157bf16b57 Mon Sep 17 00:00:00 2001 From: otelbot <197425009+otelbot@users.noreply.github.com> Date: Mon, 27 Apr 2026 02:56:16 +0000 Subject: [PATCH 1/5] Review fixes for jaxws-metro-2.2:javaagent Automated code review of instrumentation/jaxws/jaxws-metro-2.2/javaagent. --- .../javaagent/instrumentation/metro/MetroHelper.java | 4 ++-- .../javaagent/instrumentation/metro/MetroRequest.java | 8 ++++---- .../instrumentation/metro/MetroServerSpanNameUpdater.java | 4 ++-- .../javaagent/instrumentation/metro/MetroSingletons.java | 4 ++-- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/instrumentation/jaxws/jaxws-metro-2.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/metro/MetroHelper.java b/instrumentation/jaxws/jaxws-metro-2.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/metro/MetroHelper.java index fc1379bed825..8526a6345351 100644 --- a/instrumentation/jaxws/jaxws-metro-2.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/metro/MetroHelper.java +++ b/instrumentation/jaxws/jaxws-metro-2.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/metro/MetroHelper.java @@ -18,7 +18,7 @@ public class MetroHelper { private static final String SCOPE_KEY = MetroHelper.class.getName() + ".Scope"; private static final String THROWABLE_KEY = MetroHelper.class.getName() + ".Throwable"; - private static final MetroServerSpanNameUpdater SPAN_NAME_UPDATER = + private static final MetroServerSpanNameUpdater spanNameUpdater = new MetroServerSpanNameUpdater(); private MetroHelper() {} @@ -27,7 +27,7 @@ public static void start(WSEndpoint endpoint, Packet packet) { Context parentContext = Context.current(); MetroRequest request = new MetroRequest(endpoint, packet); - SPAN_NAME_UPDATER.updateServerSpanName(parentContext, request); + spanNameUpdater.updateServerSpanName(parentContext, request); if (!instrumenter().shouldStart(parentContext, request)) { return; diff --git a/instrumentation/jaxws/jaxws-metro-2.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/metro/MetroRequest.java b/instrumentation/jaxws/jaxws-metro-2.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/metro/MetroRequest.java index ad309a6e4dbf..c0b0e7e042c4 100644 --- a/instrumentation/jaxws/jaxws-metro-2.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/metro/MetroRequest.java +++ b/instrumentation/jaxws/jaxws-metro-2.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/metro/MetroRequest.java @@ -9,20 +9,20 @@ import com.sun.xml.ws.api.server.WSEndpoint; import javax.xml.namespace.QName; -public class MetroRequest { +class MetroRequest { private final Packet packet; private final String spanName; - public MetroRequest(WSEndpoint endpoint, Packet packet) { + MetroRequest(WSEndpoint endpoint, Packet packet) { this.packet = packet; this.spanName = getSpanName(endpoint, packet); } - public String spanName() { + String spanName() { return spanName; } - public Packet packet() { + Packet packet() { return packet; } diff --git a/instrumentation/jaxws/jaxws-metro-2.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/metro/MetroServerSpanNameUpdater.java b/instrumentation/jaxws/jaxws-metro-2.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/metro/MetroServerSpanNameUpdater.java index 7c804a074d7a..000d9a0f35b9 100644 --- a/instrumentation/jaxws/jaxws-metro-2.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/metro/MetroServerSpanNameUpdater.java +++ b/instrumentation/jaxws/jaxws-metro-2.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/metro/MetroServerSpanNameUpdater.java @@ -39,7 +39,7 @@ final class MetroServerSpanNameUpdater { */ private final Map servletRequestAdapters; - public MetroServerSpanNameUpdater() { + MetroServerSpanNameUpdater() { this.servletRequestAdapters = new LinkedHashMap<>(); registerHttpServletRequestAdapter( @@ -72,7 +72,7 @@ private void registerHttpServletRequestAdapter( logger.finest(() -> "Enabled " + name + " jaxws metro server span naming"); } - public void updateServerSpanName(Context context, MetroRequest metroRequest) { + void updateServerSpanName(Context context, MetroRequest metroRequest) { String spanName = metroRequest.spanName(); Span serverSpan = LocalRootSpan.fromContextOrNull(context); diff --git a/instrumentation/jaxws/jaxws-metro-2.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/metro/MetroSingletons.java b/instrumentation/jaxws/jaxws-metro-2.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/metro/MetroSingletons.java index 0d57a2916128..23216db34e75 100644 --- a/instrumentation/jaxws/jaxws-metro-2.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/metro/MetroSingletons.java +++ b/instrumentation/jaxws/jaxws-metro-2.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/metro/MetroSingletons.java @@ -9,7 +9,7 @@ import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter; import io.opentelemetry.javaagent.bootstrap.internal.ExperimentalConfig; -public class MetroSingletons { +class MetroSingletons { private static final String INSTRUMENTATION_NAME = "io.opentelemetry.jaxws-metro-2.2"; private static final Instrumenter instrumenter; @@ -22,7 +22,7 @@ public class MetroSingletons { .buildInstrumenter(); } - public static Instrumenter instrumenter() { + static Instrumenter instrumenter() { return instrumenter; } From 3e005178e1bc1ee8bc3c30d4653bebac948c04cf Mon Sep 17 00:00:00 2001 From: otelbot <197425009+otelbot@users.noreply.github.com> Date: Mon, 27 Apr 2026 03:00:03 +0000 Subject: [PATCH 2/5] Review fixes for jboss-logmanager-appender-1.1:javaagent Automated code review of instrumentation/jboss-logmanager/jboss-logmanager-appender-1.1/javaagent. --- .../jbosslogmanager/appender/v1_1/LoggingEventMapper.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/instrumentation/jboss-logmanager/jboss-logmanager-appender-1.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jbosslogmanager/appender/v1_1/LoggingEventMapper.java b/instrumentation/jboss-logmanager/jboss-logmanager-appender-1.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jbosslogmanager/appender/v1_1/LoggingEventMapper.java index a0ae9d19b1f0..6426c8efb3f4 100644 --- a/instrumentation/jboss-logmanager/jboss-logmanager-appender-1.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jbosslogmanager/appender/v1_1/LoggingEventMapper.java +++ b/instrumentation/jboss-logmanager/jboss-logmanager-appender-1.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jbosslogmanager/appender/v1_1/LoggingEventMapper.java @@ -32,12 +32,12 @@ public class LoggingEventMapper { private static final Cache> mdcAttributeKeys = Cache.bounded(100); - private final List> captureMdcAttributeKeys; - private static final boolean captureExperimentalAttributes = DeclarativeConfigUtil.getInstrumentationConfig(GlobalOpenTelemetry.get(), "jboss_logmanager") .getBoolean("experimental_log_attributes/development", false); + private final List> captureMdcAttributeKeys; + // cached as an optimization private final boolean captureAllMdcAttributes; From 77148cdcad2df870c1de130cd216c492dff24b1a Mon Sep 17 00:00:00 2001 From: otelbot <197425009+otelbot@users.noreply.github.com> Date: Mon, 27 Apr 2026 03:04:37 +0000 Subject: [PATCH 3/5] Review fixes for jboss-logmanager-mdc-1.1:javaagent Automated code review of instrumentation/jboss-logmanager/jboss-logmanager-mdc-1.1/javaagent. --- .../mdc/v1_1/JbossLogmanagerMdcTest.java | 50 ++++++++++--------- 1 file changed, 26 insertions(+), 24 deletions(-) diff --git a/instrumentation/jboss-logmanager/jboss-logmanager-mdc-1.1/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/jbosslogmanager/mdc/v1_1/JbossLogmanagerMdcTest.java b/instrumentation/jboss-logmanager/jboss-logmanager-mdc-1.1/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/jbosslogmanager/mdc/v1_1/JbossLogmanagerMdcTest.java index 7b1cacca4479..1c9357220179 100644 --- a/instrumentation/jboss-logmanager/jboss-logmanager-mdc-1.1/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/jbosslogmanager/mdc/v1_1/JbossLogmanagerMdcTest.java +++ b/instrumentation/jboss-logmanager/jboss-logmanager-mdc-1.1/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/jbosslogmanager/mdc/v1_1/JbossLogmanagerMdcTest.java @@ -5,7 +5,7 @@ package io.opentelemetry.javaagent.instrumentation.jbosslogmanager.mdc.v1_1; -import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.assertThat; +import static org.assertj.core.api.Assertions.assertThat; import io.opentelemetry.api.trace.Span; import io.opentelemetry.instrumentation.testing.junit.AgentInstrumentationExtension; @@ -58,11 +58,12 @@ void noIdsGeneratedWhenNoSpanProvided() { try { logger.info("log message 1"); - assertThat(logRecords).hasSize(1); - assertThat(logRecords.get(0).getMessage()).isEqualTo("log message 1"); - assertThat(logRecords.get(0).getMdc("trace_id")).isNull(); - assertThat(logRecords.get(0).getMdc("span_id")).isNull(); - assertThat(logRecords.get(0).getMdc("trace_flags")).isNull(); + assertThat(logRecords).extracting(ExtLogRecord::getMessage).containsExactly("log message 1"); + + ExtLogRecord logRecord = logRecords.get(0); + assertThat(logRecord.getMdc("trace_id")).isNull(); + assertThat(logRecord.getMdc("span_id")).isNull(); + assertThat(logRecord.getMdc("trace_flags")).isNull(); } finally { logger.removeHandler(handler); } @@ -94,46 +95,47 @@ void idsGeneratedWhenSpanProvided() throws ReflectiveOperationException { return Span.current(); }); - assertThat(logRecords).hasSize(3); + assertThat(logRecords) + .extracting(ExtLogRecord::getMessage) + .containsExactly("log message 1", "log message 2", "log message 3"); + + ExtLogRecord firstLogRecord = logRecords.get(0); + ExtLogRecord secondLogRecord = logRecords.get(1); + ExtLogRecord thirdLogRecord = logRecords.get(2); Method getMdcCopy = null; try { - getMdcCopy = logRecords.get(0).getClass().getMethod("getMdcCopy"); + getMdcCopy = firstLogRecord.getClass().getMethod("getMdcCopy"); } catch (NoSuchMethodException ignored) { // ignored } - assertThat(logRecords.get(0).getMessage()).isEqualTo("log message 1"); - assertThat(logRecords.get(0).getMdc("trace_id")) - .isEqualTo(span1.getSpanContext().getTraceId()); - assertThat(logRecords.get(0).getMdc("span_id")).isEqualTo(span1.getSpanContext().getSpanId()); - assertThat(logRecords.get(0).getMdc("trace_flags")) + assertThat(firstLogRecord.getMdc("trace_id")).isEqualTo(span1.getSpanContext().getTraceId()); + assertThat(firstLogRecord.getMdc("span_id")).isEqualTo(span1.getSpanContext().getSpanId()); + assertThat(firstLogRecord.getMdc("trace_flags")) .isEqualTo(span1.getSpanContext().getTraceFlags().asHex()); if (getMdcCopy != null) { @SuppressWarnings("unchecked") - Map copiedMdc = (Map) getMdcCopy.invoke(logRecords.get(0)); + Map copiedMdc = (Map) getMdcCopy.invoke(firstLogRecord); assertThat(copiedMdc.get("trace_id")).isEqualTo(span1.getSpanContext().getTraceId()); assertThat(copiedMdc.get("span_id")).isEqualTo(span1.getSpanContext().getSpanId()); assertThat(copiedMdc.get("trace_flags")) .isEqualTo(span1.getSpanContext().getTraceFlags().asHex()); } - assertThat(logRecords.get(1).getMessage()).isEqualTo("log message 2"); - assertThat(logRecords.get(1).getMdc("trace_id")).isNull(); - assertThat(logRecords.get(1).getMdc("span_id")).isNull(); - assertThat(logRecords.get(1).getMdc("trace_flags")).isNull(); + assertThat(secondLogRecord.getMdc("trace_id")).isNull(); + assertThat(secondLogRecord.getMdc("span_id")).isNull(); + assertThat(secondLogRecord.getMdc("trace_flags")).isNull(); - assertThat(logRecords.get(2).getMessage()).isEqualTo("log message 3"); - assertThat(logRecords.get(2).getMdc("trace_id")) - .isEqualTo(span2.getSpanContext().getTraceId()); - assertThat(logRecords.get(2).getMdc("span_id")).isEqualTo(span2.getSpanContext().getSpanId()); - assertThat(logRecords.get(2).getMdc("trace_flags")) + assertThat(thirdLogRecord.getMdc("trace_id")).isEqualTo(span2.getSpanContext().getTraceId()); + assertThat(thirdLogRecord.getMdc("span_id")).isEqualTo(span2.getSpanContext().getSpanId()); + assertThat(thirdLogRecord.getMdc("trace_flags")) .isEqualTo(span2.getSpanContext().getTraceFlags().asHex()); if (getMdcCopy != null) { @SuppressWarnings("unchecked") - Map copiedMdc = (Map) getMdcCopy.invoke(logRecords.get(2)); + Map copiedMdc = (Map) getMdcCopy.invoke(thirdLogRecord); assertThat(copiedMdc.get("trace_id")).isEqualTo(span2.getSpanContext().getTraceId()); assertThat(copiedMdc.get("span_id")).isEqualTo(span2.getSpanContext().getSpanId()); assertThat(copiedMdc.get("trace_flags")) From 91a45fba68bd10f9587eba5c2e27f6625bf6b9cd Mon Sep 17 00:00:00 2001 From: otelbot <197425009+otelbot@users.noreply.github.com> Date: Mon, 27 Apr 2026 03:12:41 +0000 Subject: [PATCH 4/5] Review fixes for jdbc:javaagent Automated code review of instrumentation/jdbc/javaagent. --- .../instrumentation/jdbc/ConnectionInstrumentation.java | 1 + .../javaagent/instrumentation/jdbc/JdbcAdviceScope.java | 1 + .../instrumentation/jdbc/PreparedStatementInstrumentation.java | 2 +- 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/instrumentation/jdbc/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jdbc/ConnectionInstrumentation.java b/instrumentation/jdbc/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jdbc/ConnectionInstrumentation.java index e40f54369dfc..86da9d87e361 100644 --- a/instrumentation/jdbc/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jdbc/ConnectionInstrumentation.java +++ b/instrumentation/jdbc/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jdbc/ConnectionInstrumentation.java @@ -170,6 +170,7 @@ public void end(@Nullable Throwable throwable) { } } + @Nullable @Advice.OnMethodEnter(suppress = Throwable.class, inline = false) public static AdviceScope onEnter( @Advice.This Connection connection, @Advice.Origin("#m") String methodName) { diff --git a/instrumentation/jdbc/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jdbc/JdbcAdviceScope.java b/instrumentation/jdbc/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jdbc/JdbcAdviceScope.java index c4ceba8a648b..1685d3b5a81a 100644 --- a/instrumentation/jdbc/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jdbc/JdbcAdviceScope.java +++ b/instrumentation/jdbc/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jdbc/JdbcAdviceScope.java @@ -74,6 +74,7 @@ private static JdbcAdviceScope start(CallDepth callDepth, Supplier re return new JdbcAdviceScope(callDepth, request, context, context.makeCurrent()); } + @Nullable private static DbRequest createBatchRequest(Statement statement) { if (statement instanceof PreparedStatement) { String sql = JdbcData.PREPARED_STATEMENT.get((PreparedStatement) statement); diff --git a/instrumentation/jdbc/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jdbc/PreparedStatementInstrumentation.java b/instrumentation/jdbc/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jdbc/PreparedStatementInstrumentation.java index 3fb61caeee46..264505cea912 100644 --- a/instrumentation/jdbc/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jdbc/PreparedStatementInstrumentation.java +++ b/instrumentation/jdbc/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jdbc/PreparedStatementInstrumentation.java @@ -239,7 +239,7 @@ public static void onExit( public static class ClearParametersAdvice { @Advice.OnMethodEnter(suppress = Throwable.class, inline = false) - public static void clearBatch(@Advice.This PreparedStatement statement) { + public static void clearParameters(@Advice.This PreparedStatement statement) { JdbcData.clearParameters(statement); } } From 22f580247fd4a45fbe6532a9fa11c2b5d266ce10 Mon Sep 17 00:00:00 2001 From: otelbot <197425009+otelbot@users.noreply.github.com> Date: Mon, 27 Apr 2026 03:19:06 +0000 Subject: [PATCH 5/5] Review fixes for jdbc:library Automated code review of instrumentation/jdbc/library. --- .../instrumentation/jdbc/OpenTelemetryDriver.java | 5 +++-- .../jdbc/datasource/OpenTelemetryDataSource.java | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/instrumentation/jdbc/library/src/main/java/io/opentelemetry/instrumentation/jdbc/OpenTelemetryDriver.java b/instrumentation/jdbc/library/src/main/java/io/opentelemetry/instrumentation/jdbc/OpenTelemetryDriver.java index f9529b5ce651..be1a6a6aa224 100644 --- a/instrumentation/jdbc/library/src/main/java/io/opentelemetry/instrumentation/jdbc/OpenTelemetryDriver.java +++ b/instrumentation/jdbc/library/src/main/java/io/opentelemetry/instrumentation/jdbc/OpenTelemetryDriver.java @@ -240,7 +240,7 @@ public void setOpenTelemetry(OpenTelemetry openTelemetry) { @Nullable @Override - public Connection connect(String url, Properties info) throws SQLException { + public Connection connect(String url, @Nullable Properties info) throws SQLException { if (url == null || url.trim().isEmpty()) { throw new IllegalArgumentException("url is required"); } @@ -283,7 +283,8 @@ public boolean acceptsURL(String url) { } @Override - public DriverPropertyInfo[] getPropertyInfo(String url, Properties info) throws SQLException { + public DriverPropertyInfo[] getPropertyInfo(String url, @Nullable Properties info) + throws SQLException { if (url == null || url.trim().isEmpty()) { throw new IllegalArgumentException("url is required"); } diff --git a/instrumentation/jdbc/library/src/main/java/io/opentelemetry/instrumentation/jdbc/datasource/OpenTelemetryDataSource.java b/instrumentation/jdbc/library/src/main/java/io/opentelemetry/instrumentation/jdbc/datasource/OpenTelemetryDataSource.java index bc8e1749c9cd..162596848d06 100644 --- a/instrumentation/jdbc/library/src/main/java/io/opentelemetry/instrumentation/jdbc/datasource/OpenTelemetryDataSource.java +++ b/instrumentation/jdbc/library/src/main/java/io/opentelemetry/instrumentation/jdbc/datasource/OpenTelemetryDataSource.java @@ -88,7 +88,8 @@ public Connection getConnection() throws SQLException { } @Override - public Connection getConnection(String username, String password) throws SQLException { + public Connection getConnection(@Nullable String username, @Nullable String password) + throws SQLException { Connection connection = wrapCall(() -> delegate.getConnection(username, password)); DbInfo dbInfo = getDbInfo(connection); return OpenTelemetryConnection.create(