diff --git a/java-spanner/google-cloud-spanner/src/main/java/com/google/cloud/spanner/SpannerOptions.java b/java-spanner/google-cloud-spanner/src/main/java/com/google/cloud/spanner/SpannerOptions.java index be053c85dfb1..395276839f44 100644 --- a/java-spanner/google-cloud-spanner/src/main/java/com/google/cloud/spanner/SpannerOptions.java +++ b/java-spanner/google-cloud-spanner/src/main/java/com/google/cloud/spanner/SpannerOptions.java @@ -2691,7 +2691,9 @@ public static void enableOpenCensusTraces() { + " OpenTelemetry traces") @VisibleForTesting static void resetActiveTracingFramework() { - activeTracingFramework = null; + synchronized (lock) { + activeTracingFramework = null; + } } public static TracingFramework getActiveTracingFramework() { diff --git a/java-spanner/google-cloud-spanner/src/test/java/com/google/cloud/spanner/BatchClientImplTest.java b/java-spanner/google-cloud-spanner/src/test/java/com/google/cloud/spanner/BatchClientImplTest.java index 7a9ed7dcd91d..d8d123925073 100644 --- a/java-spanner/google-cloud-spanner/src/test/java/com/google/cloud/spanner/BatchClientImplTest.java +++ b/java-spanner/google-cloud-spanner/src/test/java/com/google/cloud/spanner/BatchClientImplTest.java @@ -39,6 +39,7 @@ import java.time.Duration; import java.util.Collections; import java.util.Map; +import org.junit.AfterClass; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; @@ -71,6 +72,11 @@ public static void setupOpenTelemetry() { SpannerOptions.enableOpenTelemetryTraces(); } + @AfterClass + public static void resetOpenTelemetry() { + SpannerOptions.resetActiveTracingFramework(); + } + @SuppressWarnings("unchecked") @Before public void setUp() { diff --git a/java-spanner/google-cloud-spanner/src/test/java/com/google/cloud/spanner/IntegrationTestEnv.java b/java-spanner/google-cloud-spanner/src/test/java/com/google/cloud/spanner/IntegrationTestEnv.java index 7e32c410a72c..dffa2c8f08b2 100644 --- a/java-spanner/google-cloud-spanner/src/test/java/com/google/cloud/spanner/IntegrationTestEnv.java +++ b/java-spanner/google-cloud-spanner/src/test/java/com/google/cloud/spanner/IntegrationTestEnv.java @@ -203,6 +203,7 @@ public SpannerOptions spannerOptionsWithEndToEndTracing(SpannerOptions options) .setTracerProvider(sdkTracerProvider) .setPropagators(ContextPropagators.create(W3CTraceContextPropagator.getInstance())) .build(); + SpannerOptions.resetActiveTracingFramework(); SpannerOptions.enableOpenTelemetryTraces(); return options.toBuilder() .setOpenTelemetry(openTelemetry) @@ -217,8 +218,15 @@ RemoteSpannerHelper createTestHelper(SpannerOptions options, InstanceId instance @Override protected void after() { - cleanUpInstance(); - this.config.tearDown(); + try { + cleanUpInstance(); + } finally { + try { + this.config.tearDown(); + } finally { + SpannerOptions.resetActiveTracingFramework(); + } + } } private void initializeInstance(InstanceId instanceId) throws Exception { diff --git a/java-spanner/google-cloud-spanner/src/test/java/com/google/cloud/spanner/MultiplexedSessionsBenchmark.java b/java-spanner/google-cloud-spanner/src/test/java/com/google/cloud/spanner/MultiplexedSessionsBenchmark.java index f71fdfe37a3e..eae4c4259afa 100644 --- a/java-spanner/google-cloud-spanner/src/test/java/com/google/cloud/spanner/MultiplexedSessionsBenchmark.java +++ b/java-spanner/google-cloud-spanner/src/test/java/com/google/cloud/spanner/MultiplexedSessionsBenchmark.java @@ -86,6 +86,7 @@ public static class BenchmarkState { @Setup(Level.Iteration) public void setup() throws Exception { + SpannerOptions.resetActiveTracingFramework(); SpannerOptions.enableOpenTelemetryMetrics(); SpannerOptions.enableOpenTelemetryTraces(); SpannerOptions options = @@ -109,7 +110,11 @@ public void setup() throws Exception { @TearDown(Level.Iteration) public void teardown() throws Exception { - spanner.close(); + try { + spanner.close(); + } finally { + SpannerOptions.resetActiveTracingFramework(); + } } } diff --git a/java-spanner/google-cloud-spanner/src/test/java/com/google/cloud/spanner/OpenCensusApiTracerTest.java b/java-spanner/google-cloud-spanner/src/test/java/com/google/cloud/spanner/OpenCensusApiTracerTest.java index ad27c775729b..4311f15ef9e7 100644 --- a/java-spanner/google-cloud-spanner/src/test/java/com/google/cloud/spanner/OpenCensusApiTracerTest.java +++ b/java-spanner/google-cloud-spanner/src/test/java/com/google/cloud/spanner/OpenCensusApiTracerTest.java @@ -49,6 +49,7 @@ import java.util.concurrent.ExecutionException; import java.util.stream.Collectors; import org.junit.After; +import org.junit.AfterClass; import org.junit.Assume; import org.junit.BeforeClass; import org.junit.Ignore; @@ -97,6 +98,11 @@ public static void setupOpenTelemetry() throws Exception { field.set(null, failOnOverkillTraceComponent); } + @AfterClass + public static void resetTracing() { + SpannerOptions.resetActiveTracingFramework(); + } + @BeforeClass public static void setupResults() { RandomResultSetGenerator generator = new RandomResultSetGenerator(1); diff --git a/java-spanner/google-cloud-spanner/src/test/java/com/google/cloud/spanner/OpenTelemetryApiTracerTest.java b/java-spanner/google-cloud-spanner/src/test/java/com/google/cloud/spanner/OpenTelemetryApiTracerTest.java index 67012ed96225..fa079a0e46fc 100644 --- a/java-spanner/google-cloud-spanner/src/test/java/com/google/cloud/spanner/OpenTelemetryApiTracerTest.java +++ b/java-spanner/google-cloud-spanner/src/test/java/com/google/cloud/spanner/OpenTelemetryApiTracerTest.java @@ -103,6 +103,7 @@ public static void setupResults() { @AfterClass public static void closeOpenTelemetry() { + SpannerOptions.resetActiveTracingFramework(); if (openTelemetry != null) { openTelemetry.close(); } diff --git a/java-spanner/google-cloud-spanner/src/test/java/com/google/cloud/spanner/OpenTelemetrySpanTest.java b/java-spanner/google-cloud-spanner/src/test/java/com/google/cloud/spanner/OpenTelemetrySpanTest.java index 8ff8827664da..e003841f0c64 100644 --- a/java-spanner/google-cloud-spanner/src/test/java/com/google/cloud/spanner/OpenTelemetrySpanTest.java +++ b/java-spanner/google-cloud-spanner/src/test/java/com/google/cloud/spanner/OpenTelemetrySpanTest.java @@ -205,6 +205,7 @@ public static void startStaticServer() throws Exception { @AfterClass public static void stopServer() throws InterruptedException { + SpannerOptions.resetActiveTracingFramework(); if (server != null) { server.shutdown(); server.awaitTermination(); diff --git a/java-spanner/google-cloud-spanner/src/test/java/com/google/cloud/spanner/SessionImplTest.java b/java-spanner/google-cloud-spanner/src/test/java/com/google/cloud/spanner/SessionImplTest.java index 85d21c1e75a3..4e7197356350 100644 --- a/java-spanner/google-cloud-spanner/src/test/java/com/google/cloud/spanner/SessionImplTest.java +++ b/java-spanner/google-cloud-spanner/src/test/java/com/google/cloud/spanner/SessionImplTest.java @@ -74,6 +74,7 @@ import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicInteger; import javax.annotation.Nullable; +import org.junit.AfterClass; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; @@ -100,6 +101,11 @@ public static void setupOpenTelemetry() { SpannerOptions.enableOpenTelemetryTraces(); } + @AfterClass + public static void resetOpenTelemetry() { + SpannerOptions.resetActiveTracingFramework(); + } + @SuppressWarnings("unchecked") @Before public void setUp() { diff --git a/java-spanner/google-cloud-spanner/src/test/java/com/google/cloud/spanner/SpanTest.java b/java-spanner/google-cloud-spanner/src/test/java/com/google/cloud/spanner/SpanTest.java index 449e78cf6125..c30283da86ce 100644 --- a/java-spanner/google-cloud-spanner/src/test/java/com/google/cloud/spanner/SpanTest.java +++ b/java-spanner/google-cloud-spanner/src/test/java/com/google/cloud/spanner/SpanTest.java @@ -161,6 +161,7 @@ public static void startStaticServer() throws Exception { @AfterClass public static void stopServer() throws InterruptedException { + SpannerOptions.resetActiveTracingFramework(); if (server != null) { server.shutdown(); server.awaitTermination(); diff --git a/java-spanner/google-cloud-spanner/src/test/java/com/google/cloud/spanner/SpannerImplTest.java b/java-spanner/google-cloud-spanner/src/test/java/com/google/cloud/spanner/SpannerImplTest.java index 7438ac6b1aba..1bcfde7d4e27 100644 --- a/java-spanner/google-cloud-spanner/src/test/java/com/google/cloud/spanner/SpannerImplTest.java +++ b/java-spanner/google-cloud-spanner/src/test/java/com/google/cloud/spanner/SpannerImplTest.java @@ -51,6 +51,7 @@ import java.util.Map; import java.util.concurrent.atomic.AtomicBoolean; import org.junit.After; +import org.junit.AfterClass; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; @@ -81,6 +82,11 @@ public static void setupOpenTelemetry() { SpannerOptions.enableOpenTelemetryTraces(); } + @AfterClass + public static void resetOpenTelemetry() { + SpannerOptions.resetActiveTracingFramework(); + } + @Before public void setUp() { databaseAdminStubSettings = diff --git a/java-spanner/google-cloud-spanner/src/test/java/com/google/cloud/spanner/TransactionManagerImplTest.java b/java-spanner/google-cloud-spanner/src/test/java/com/google/cloud/spanner/TransactionManagerImplTest.java index 2a8c6db211b4..2aefc2ca6ff7 100644 --- a/java-spanner/google-cloud-spanner/src/test/java/com/google/cloud/spanner/TransactionManagerImplTest.java +++ b/java-spanner/google-cloud-spanner/src/test/java/com/google/cloud/spanner/TransactionManagerImplTest.java @@ -56,6 +56,7 @@ import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.atomic.AtomicInteger; +import org.junit.AfterClass; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; @@ -89,6 +90,11 @@ public static void setupOpenTelemetry() { SpannerOptions.enableOpenTelemetryTraces(); } + @AfterClass + public static void resetOpenTelemetry() { + SpannerOptions.resetActiveTracingFramework(); + } + @Before public void setUp() { initMocks(this); diff --git a/java-spanner/google-cloud-spanner/src/test/java/com/google/cloud/spanner/TransactionRunnerImplTest.java b/java-spanner/google-cloud-spanner/src/test/java/com/google/cloud/spanner/TransactionRunnerImplTest.java index 5fbcac89025d..3ee62127a2a3 100644 --- a/java-spanner/google-cloud-spanner/src/test/java/com/google/cloud/spanner/TransactionRunnerImplTest.java +++ b/java-spanner/google-cloud-spanner/src/test/java/com/google/cloud/spanner/TransactionRunnerImplTest.java @@ -74,6 +74,7 @@ import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.atomic.AtomicInteger; +import org.junit.AfterClass; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; @@ -115,6 +116,11 @@ public static void setupOpenTelemetry() { SpannerOptions.enableOpenTelemetryTraces(); } + @AfterClass + public static void resetOpenTelemetry() { + SpannerOptions.resetActiveTracingFramework(); + } + @Before public void setUp() { MockitoAnnotations.initMocks(this); diff --git a/java-spanner/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/OpenTelemetryTracingTest.java b/java-spanner/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/OpenTelemetryTracingTest.java index a8e579feb1a3..6c2f9b82d16d 100644 --- a/java-spanner/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/OpenTelemetryTracingTest.java +++ b/java-spanner/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/OpenTelemetryTracingTest.java @@ -83,6 +83,7 @@ public static void setupOpenTelemetry() { @AfterClass public static void closeOpenTelemetry() { + SpannerOptionsTestHelper.resetActiveTracingFramework(); SpannerPool.closeSpannerPool(); if (openTelemetry != null) { openTelemetry.close(); diff --git a/java-spanner/google-cloud-spanner/src/test/java/com/google/cloud/spanner/it/ITEndToEndTracingTest.java b/java-spanner/google-cloud-spanner/src/test/java/com/google/cloud/spanner/it/ITEndToEndTracingTest.java index 52d1bc94629c..050f342c472c 100644 --- a/java-spanner/google-cloud-spanner/src/test/java/com/google/cloud/spanner/it/ITEndToEndTracingTest.java +++ b/java-spanner/google-cloud-spanner/src/test/java/com/google/cloud/spanner/it/ITEndToEndTracingTest.java @@ -84,7 +84,11 @@ public static void setUpDatabase() { @AfterClass public static void teardown() { - ConnectionOptions.closeSpanner(); + try { + ConnectionOptions.closeSpanner(); + } finally { + SpannerOptionsHelper.resetActiveTracingFramework(); + } } private void assertTrace(String traceId) throws IOException, InterruptedException { diff --git a/java-spanner/google-cloud-spanner/src/test/java/com/google/cloud/spanner/spi/v1/GapicSpannerRpcTest.java b/java-spanner/google-cloud-spanner/src/test/java/com/google/cloud/spanner/spi/v1/GapicSpannerRpcTest.java index c2e4bb601665..39f68f6074c6 100644 --- a/java-spanner/google-cloud-spanner/src/test/java/com/google/cloud/spanner/spi/v1/GapicSpannerRpcTest.java +++ b/java-spanner/google-cloud-spanner/src/test/java/com/google/cloud/spanner/spi/v1/GapicSpannerRpcTest.java @@ -322,6 +322,7 @@ public ServerCall.Listener interceptCall( @After public void reset() throws InterruptedException { + SpannerOptionsHelper.resetActiveTracingFramework(); if (mockSpanner != null) { mockSpanner.reset(); }