From f155fb249cded89ab9ea074ef6604cfcdda70d42 Mon Sep 17 00:00:00 2001 From: otelbot <197425009+otelbot@users.noreply.github.com> Date: Sun, 26 Apr 2026 05:32:57 +0000 Subject: [PATCH 1/7] Review fixes for azure-core-1.14:javaagent Automated code review of instrumentation/azure-core/azure-core-1.14/javaagent. --- .../instrumentation/azurecore/v1_14/AzureSdkTest.java | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/instrumentation/azure-core/azure-core-1.14/javaagent/src/testAzure/java/io/opentelemetry/javaagent/instrumentation/azurecore/v1_14/AzureSdkTest.java b/instrumentation/azure-core/azure-core-1.14/javaagent/src/testAzure/java/io/opentelemetry/javaagent/instrumentation/azurecore/v1_14/AzureSdkTest.java index 063354e6a339..515571f9f066 100644 --- a/instrumentation/azure-core/azure-core-1.14/javaagent/src/testAzure/java/io/opentelemetry/javaagent/instrumentation/azurecore/v1_14/AzureSdkTest.java +++ b/instrumentation/azure-core/azure-core-1.14/javaagent/src/testAzure/java/io/opentelemetry/javaagent/instrumentation/azurecore/v1_14/AzureSdkTest.java @@ -34,12 +34,10 @@ void testHelperClassesInjected() { HttpPolicyProviders.addAfterRetryPolicies(list); assertThat(list) - .satisfiesExactly( - item -> - assertThat(item.getClass().getName()) - .isEqualTo( - "io.opentelemetry.javaagent.instrumentation.azurecore.v1_14.shaded" - + ".com.azure.core.tracing.opentelemetry.OpenTelemetryHttpPolicy")); + .extracting(item -> item.getClass().getName()) + .containsExactly( + "io.opentelemetry.javaagent.instrumentation.azurecore.v1_14.shaded" + + ".com.azure.core.tracing.opentelemetry.OpenTelemetryHttpPolicy"); } @Test From 58d7747c161b08a17d60a741baaa3e1ea13fe4bf Mon Sep 17 00:00:00 2001 From: otelbot <197425009+otelbot@users.noreply.github.com> Date: Sun, 26 Apr 2026 05:37:43 +0000 Subject: [PATCH 2/7] Review fixes for azure-core-1.19:javaagent Automated code review of instrumentation/azure-core/azure-core-1.19/javaagent. --- .../azurecore/v1_19/AzureSdkInstrumentationModule.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/instrumentation/azure-core/azure-core-1.19/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/azurecore/v1_19/AzureSdkInstrumentationModule.java b/instrumentation/azure-core/azure-core-1.19/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/azurecore/v1_19/AzureSdkInstrumentationModule.java index 5a14747a430a..d430a8cf22a6 100644 --- a/instrumentation/azure-core/azure-core-1.19/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/azurecore/v1_19/AzureSdkInstrumentationModule.java +++ b/instrumentation/azure-core/azure-core-1.19/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/azurecore/v1_19/AzureSdkInstrumentationModule.java @@ -46,9 +46,9 @@ public List exposedClassNames() { @Override public ElementMatcher.Junction classLoaderMatcher() { - // added in 1.19 + // added in 1.19.0 return hasClassesNamed("com.azure.core.util.tracing.StartSpanOptions") - // added in 1.36 + // added in 1.36.0 .and(not(hasClassesNamed("com.azure.core.util.tracing.TracerProvider"))) // artifact presence gate (provides native OTel support) // added in com.azure:azure-core-tracing-opentelemetry 1.0.0-beta.47 From 5cc5b55c2a68a80f3e292e3e11e13f729511517b Mon Sep 17 00:00:00 2001 From: otelbot <197425009+otelbot@users.noreply.github.com> Date: Sun, 26 Apr 2026 05:49:30 +0000 Subject: [PATCH 3/7] Review fixes for c3p0-0.9:javaagent Automated code review of instrumentation/c3p0-0.9/javaagent. --- .../instrumentation/c3p0/v0_9/C3p0InstrumentationTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/instrumentation/c3p0-0.9/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/c3p0/v0_9/C3p0InstrumentationTest.java b/instrumentation/c3p0-0.9/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/c3p0/v0_9/C3p0InstrumentationTest.java index 6d1525c751eb..1731d3f1ea4f 100644 --- a/instrumentation/c3p0-0.9/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/c3p0/v0_9/C3p0InstrumentationTest.java +++ b/instrumentation/c3p0-0.9/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/c3p0/v0_9/C3p0InstrumentationTest.java @@ -14,7 +14,7 @@ class C3p0InstrumentationTest extends AbstractC3p0InstrumentationTest { @RegisterExtension - static final InstrumentationExtension testing = AgentInstrumentationExtension.create(); + private static final InstrumentationExtension testing = AgentInstrumentationExtension.create(); @Override protected InstrumentationExtension testing() { From 56ff1db8b200072af91c0aef1b97bd9cbf76345e Mon Sep 17 00:00:00 2001 From: otelbot <197425009+otelbot@users.noreply.github.com> Date: Sun, 26 Apr 2026 05:55:36 +0000 Subject: [PATCH 4/7] Review fixes for c3p0-0.9:testing Automated code review of instrumentation/c3p0-0.9/testing. --- .../c3p0/AbstractC3p0InstrumentationTest.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/instrumentation/c3p0-0.9/testing/src/main/java/io/opentelemetry/instrumentation/c3p0/AbstractC3p0InstrumentationTest.java b/instrumentation/c3p0-0.9/testing/src/main/java/io/opentelemetry/instrumentation/c3p0/AbstractC3p0InstrumentationTest.java index 5d4c6cde3709..1ab2219ea948 100644 --- a/instrumentation/c3p0-0.9/testing/src/main/java/io/opentelemetry/instrumentation/c3p0/AbstractC3p0InstrumentationTest.java +++ b/instrumentation/c3p0-0.9/testing/src/main/java/io/opentelemetry/instrumentation/c3p0/AbstractC3p0InstrumentationTest.java @@ -44,10 +44,10 @@ void shouldReportMetrics() throws Exception { c3p0DataSource.setJdbcUrl("jdbc:mock:testDatabase"); // when - Connection connection = c3p0DataSource.getConnection(); - configure(c3p0DataSource); - MILLISECONDS.sleep(100); - connection.close(); + try (Connection connection = c3p0DataSource.getConnection()) { + configure(c3p0DataSource); + MILLISECONDS.sleep(100); + } // then assertDataSourceMetrics(c3p0DataSource); From e573b780fb322ac9ae1d4fa7ab3f754c889a8f16 Mon Sep 17 00:00:00 2001 From: otelbot <197425009+otelbot@users.noreply.github.com> Date: Sun, 26 Apr 2026 06:03:56 +0000 Subject: [PATCH 5/7] Review fixes for camel-2.20:javaagent Automated code review of instrumentation/camel-2.20/javaagent. --- .../apachecamel/ActiveContextManager.java | 4 ++-- .../instrumentation/apachecamel/CamelRequest.java | 12 ++++++------ .../instrumentation/apachecamel/CamelSingletons.java | 6 +++--- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/instrumentation/camel-2.20/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachecamel/ActiveContextManager.java b/instrumentation/camel-2.20/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachecamel/ActiveContextManager.java index 17b29e448553..53771164eb43 100644 --- a/instrumentation/camel-2.20/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachecamel/ActiveContextManager.java +++ b/instrumentation/camel-2.20/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachecamel/ActiveContextManager.java @@ -48,7 +48,7 @@ private ActiveContextManager() {} * @param context The exchange * @param request The context */ - public static void activate(@Nullable Context context, CamelRequest request) { + static void activate(@Nullable Context context, CamelRequest request) { Exchange exchange = request.getExchange(); ContextWithScope parent = exchange.getProperty(ACTIVE_CONTEXT_PROPERTY, ContextWithScope.class); ContextWithScope contextWithScope = ContextWithScope.activate(parent, context, request); @@ -64,7 +64,7 @@ public static void activate(@Nullable Context context, CamelRequest request) { * @param exchange The exchange */ @Nullable - public static Context deactivate(Exchange exchange) { + static Context deactivate(Exchange exchange) { ContextWithScope contextWithScope = exchange.getProperty(ACTIVE_CONTEXT_PROPERTY, ContextWithScope.class); diff --git a/instrumentation/camel-2.20/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachecamel/CamelRequest.java b/instrumentation/camel-2.20/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachecamel/CamelRequest.java index 386a969ceb95..2870a52cf518 100644 --- a/instrumentation/camel-2.20/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachecamel/CamelRequest.java +++ b/instrumentation/camel-2.20/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachecamel/CamelRequest.java @@ -13,7 +13,7 @@ @AutoValue abstract class CamelRequest { - public static CamelRequest create( + static CamelRequest create( SpanDecorator spanDecorator, Exchange exchange, Endpoint endpoint, @@ -22,13 +22,13 @@ public static CamelRequest create( return new AutoValue_CamelRequest(spanDecorator, exchange, endpoint, camelDirection, spanKind); } - public abstract SpanDecorator getSpanDecorator(); + abstract SpanDecorator getSpanDecorator(); - public abstract Exchange getExchange(); + abstract Exchange getExchange(); - public abstract Endpoint getEndpoint(); + abstract Endpoint getEndpoint(); - public abstract CamelDirection getCamelDirection(); + abstract CamelDirection getCamelDirection(); - public abstract SpanKind getSpanKind(); + abstract SpanKind getSpanKind(); } diff --git a/instrumentation/camel-2.20/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachecamel/CamelSingletons.java b/instrumentation/camel-2.20/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachecamel/CamelSingletons.java index 7150d136e26c..39df9467b738 100644 --- a/instrumentation/camel-2.20/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachecamel/CamelSingletons.java +++ b/instrumentation/camel-2.20/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachecamel/CamelSingletons.java @@ -19,7 +19,7 @@ import org.apache.camel.Endpoint; import org.apache.camel.util.StringHelper; -public class CamelSingletons { +class CamelSingletons { private static final String INSTRUMENTATION_NAME = "io.opentelemetry.camel-2.20"; @@ -77,11 +77,11 @@ public void onEnd( instrumenter = builder.buildInstrumenter(request -> request.getSpanKind()); } - public static Instrumenter instrumenter() { + static Instrumenter instrumenter() { return instrumenter; } - public static SpanDecorator getSpanDecorator(Endpoint endpoint) { + static SpanDecorator getSpanDecorator(Endpoint endpoint) { String component = ""; String uri = endpoint.getEndpointUri(); String[] splitUri = StringHelper.splitOnCharacter(uri, ":", 2); From da861e71f10c8588135009fe1ea46e0151572e74 Mon Sep 17 00:00:00 2001 From: otelbot <197425009+otelbot@users.noreply.github.com> Date: Sun, 26 Apr 2026 06:06:34 +0000 Subject: [PATCH 6/7] Review fixes for camel-2.20:javaagent-unit-tests Automated code review of instrumentation/camel-2.20/javaagent-unit-tests. --- .../apachecamel/CamelPropagationUtilTest.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/instrumentation/camel-2.20/javaagent-unit-tests/src/test/java/io/opentelemetry/javaagent/instrumentation/apachecamel/CamelPropagationUtilTest.java b/instrumentation/camel-2.20/javaagent-unit-tests/src/test/java/io/opentelemetry/javaagent/instrumentation/apachecamel/CamelPropagationUtilTest.java index 9ff1f1b95d0a..04359247db9e 100644 --- a/instrumentation/camel-2.20/javaagent-unit-tests/src/test/java/io/opentelemetry/javaagent/instrumentation/apachecamel/CamelPropagationUtilTest.java +++ b/instrumentation/camel-2.20/javaagent-unit-tests/src/test/java/io/opentelemetry/javaagent/instrumentation/apachecamel/CamelPropagationUtilTest.java @@ -16,6 +16,7 @@ import io.opentelemetry.context.Context; import io.opentelemetry.context.propagation.ContextPropagators; import java.net.URI; +import java.net.URISyntaxException; import java.util.Map; import org.apache.camel.Endpoint; import org.apache.camel.component.aws.sqs.SqsComponent; @@ -36,7 +37,7 @@ static void setUp() { } @Test - void shouldExtractHttpParentForHttpEndpoint() throws Exception { + void shouldExtractHttpParentForHttpEndpoint() throws URISyntaxException { // given Endpoint endpoint = new HttpEndpoint("", new HttpComponent(), URI.create("")); Map exchangeHeaders = @@ -53,7 +54,7 @@ void shouldExtractHttpParentForHttpEndpoint() throws Exception { } @Test - void shouldNotFailExtractingNullHttpParentForHttpEndpoint() throws Exception { + void shouldNotFailExtractingNullHttpParentForHttpEndpoint() throws URISyntaxException { // given Endpoint endpoint = new HttpEndpoint("", new HttpComponent(), URI.create("")); Map exchangeHeaders = singletonMap("traceparent", null); From a740ab5352984cdc6652efbcd6f9819c97b4987e Mon Sep 17 00:00:00 2001 From: otelbot <197425009+otelbot@users.noreply.github.com> Date: Sun, 26 Apr 2026 06:12:24 +0000 Subject: [PATCH 7/7] Review fixes for cassandra-3.0:javaagent Automated code review of instrumentation/cassandra/cassandra-3.0/javaagent. --- .../v3_0/CassandraAttributesExtractor.java | 3 +- .../cassandra/v3_0/CassandraRequest.java | 2 +- .../cassandra/v3_0/CassandraSingletons.java | 4 +-- .../cassandra/v3_0/CassandraClientTest.java | 30 +++++++------------ 4 files changed, 14 insertions(+), 25 deletions(-) diff --git a/instrumentation/cassandra/cassandra-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/cassandra/v3_0/CassandraAttributesExtractor.java b/instrumentation/cassandra/cassandra-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/cassandra/v3_0/CassandraAttributesExtractor.java index 32f76b45b940..157216e69872 100644 --- a/instrumentation/cassandra/cassandra-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/cassandra/v3_0/CassandraAttributesExtractor.java +++ b/instrumentation/cassandra/cassandra-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/cassandra/v3_0/CassandraAttributesExtractor.java @@ -14,8 +14,7 @@ import io.opentelemetry.instrumentation.api.instrumenter.AttributesExtractor; import javax.annotation.Nullable; -public class CassandraAttributesExtractor - implements AttributesExtractor { +class CassandraAttributesExtractor implements AttributesExtractor { @Override public void onStart(AttributesBuilder attributes, Context context, CassandraRequest request) {} diff --git a/instrumentation/cassandra/cassandra-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/cassandra/v3_0/CassandraRequest.java b/instrumentation/cassandra/cassandra-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/cassandra/v3_0/CassandraRequest.java index fb456902f989..3dd0971e668a 100644 --- a/instrumentation/cassandra/cassandra-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/cassandra/v3_0/CassandraRequest.java +++ b/instrumentation/cassandra/cassandra-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/cassandra/v3_0/CassandraRequest.java @@ -9,7 +9,7 @@ import com.google.auto.value.AutoValue; @AutoValue -public abstract class CassandraRequest { +abstract class CassandraRequest { public static CassandraRequest create( Session session, String queryText, boolean parameterizedQuery) { diff --git a/instrumentation/cassandra/cassandra-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/cassandra/v3_0/CassandraSingletons.java b/instrumentation/cassandra/cassandra-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/cassandra/v3_0/CassandraSingletons.java index 2c9611d63352..79003ff1ae59 100644 --- a/instrumentation/cassandra/cassandra-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/cassandra/v3_0/CassandraSingletons.java +++ b/instrumentation/cassandra/cassandra-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/cassandra/v3_0/CassandraSingletons.java @@ -17,7 +17,7 @@ import io.opentelemetry.instrumentation.api.instrumenter.SpanKindExtractor; @SuppressWarnings("deprecation") // using deprecated semconv -public class CassandraSingletons { +class CassandraSingletons { private static final String INSTRUMENTATION_NAME = "io.opentelemetry.cassandra-3.0"; // could use RESPONSE "ResultSet" here, but using RESPONSE "ExecutionInfo" in cassandra-4.0 @@ -43,7 +43,7 @@ public class CassandraSingletons { .buildInstrumenter(SpanKindExtractor.alwaysClient()); } - public static Instrumenter instrumenter() { + static Instrumenter instrumenter() { return instrumenter; } diff --git a/instrumentation/cassandra/cassandra-3.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/cassandra/v3_0/CassandraClientTest.java b/instrumentation/cassandra/cassandra-3.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/cassandra/v3_0/CassandraClientTest.java index 192eddaee689..86cb3fe3c757 100644 --- a/instrumentation/cassandra/cassandra-3.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/cassandra/v3_0/CassandraClientTest.java +++ b/instrumentation/cassandra/cassandra-3.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/cassandra/v3_0/CassandraClientTest.java @@ -28,6 +28,7 @@ import com.datastax.driver.core.ResultSetFuture; import com.datastax.driver.core.Session; import io.opentelemetry.api.trace.SpanKind; +import io.opentelemetry.instrumentation.testing.internal.AutoCleanupExtension; import io.opentelemetry.instrumentation.testing.junit.AgentInstrumentationExtension; import io.opentelemetry.instrumentation.testing.junit.InstrumentationExtension; import java.net.InetAddress; @@ -36,9 +37,7 @@ import java.time.Duration; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; -import java.util.concurrent.atomic.AtomicBoolean; import java.util.stream.Stream; -import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; @@ -60,6 +59,8 @@ class CassandraClientTest { @RegisterExtension static final InstrumentationExtension testing = AgentInstrumentationExtension.create(); + @RegisterExtension static final AutoCleanupExtension cleanup = AutoCleanupExtension.create(); + private static GenericContainer cassandra; private static String cassandraHost; @@ -76,6 +77,7 @@ static void beforeAll() throws UnknownHostException { .withExposedPorts(9042) .withLogConsumer(new Slf4jLogConsumer(logger)) .withStartupTimeout(Duration.ofMinutes(2)); + cleanup.deferAfterAll(cassandra::stop); cassandra.start(); cassandraHost = cassandra.getHost(); @@ -85,19 +87,15 @@ static void beforeAll() throws UnknownHostException { Cluster.builder() .addContactPointsWithPorts(new InetSocketAddress(cassandra.getHost(), cassandraPort)) .build(); - } - - @AfterAll - static void afterAll() { - cluster.close(); - cassandra.stop(); - executor.shutdownNow(); + cleanup.deferAfterAll(cluster); + cleanup.deferAfterAll(() -> executor.shutdownNow()); } @ParameterizedTest(name = "{index}: {0}") @MethodSource("provideSyncParameters") void syncTest(Parameter parameter) { Session session = cluster.connect(parameter.keyspace); + cleanup.deferCleanup(session); session.execute(parameter.queryText); @@ -175,24 +173,19 @@ void syncTest(Parameter parameter) { maybeStable(DB_CASSANDRA_TABLE), emitStableDatabaseSemconv() ? null : parameter.table)))); } - - session.close(); } @ParameterizedTest(name = "{index}: {0}") @MethodSource("provideAsyncParameters") void asyncTest(Parameter parameter) { - @SuppressWarnings("WriteOnlyObject") - AtomicBoolean callbackExecuted = new AtomicBoolean(); Session session = cluster.connect(parameter.keyspace); + cleanup.deferCleanup(session); testing.runWithSpan( "parent", () -> { ResultSetFuture future = session.executeAsync(parameter.queryText); - future.addListener( - () -> testing.runWithSpan("callbackListener", () -> callbackExecuted.set(true)), - executor); + future.addListener(() -> testing.runWithSpan("callbackListener", () -> {}), executor); }); if (parameter.keyspace != null) { @@ -279,13 +272,12 @@ void asyncTest(Parameter parameter) { .hasKind(SpanKind.INTERNAL) .hasParent(trace.getSpan(0)))); } - - session.close(); } @Test void testMetrics() { Session session = cluster.connect(); + cleanup.deferCleanup(session); session.execute("DROP KEYSPACE IF EXISTS non_existent"); @@ -298,8 +290,6 @@ void testMetrics() { NETWORK_PEER_PORT, SERVER_ADDRESS, SERVER_PORT); - - session.close(); } private static Stream provideSyncParameters() {