From f81b682c5c8a0f07a705d81ce82a849b08f0d6ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Knut=20Olav=20L=C3=B8ite?= Date: Sat, 20 Sep 2025 07:13:42 +0200 Subject: [PATCH 1/2] test: disable mtls checks during tests Disable MTLS checks during tests, as the check is otherwise executed for every stub creation. This slows down running the tests locally to the point that they are unusable. This workaround should be removed once https://github.com/googleapis/sdk-platform-java/issues/3911 has been fixed. --- google-cloud-spanner/pom.xml | 14 ++++ .../spanner/AbstractAsyncTransactionTest.java | 2 + .../cloud/spanner/AbstractMockServerTest.java | 6 +- .../spanner/AbstractNettyMockServerTest.java | 6 +- .../cloud/spanner/BackendExhaustedTest.java | 5 +- .../spanner/BatchCreateSessionsSlowTest.java | 5 +- .../spanner/BatchCreateSessionsTest.java | 5 +- .../cloud/spanner/ChannelUsageTest.java | 5 +- .../cloud/spanner/DatabaseClientImplTest.java | 5 +- ...plWithDefaultRWTransactionOptionsTest.java | 5 +- .../spanner/DisableDefaultMtlsProvider.java | 73 +++++++++++++++++++ .../spanner/InlineBeginTransactionTest.java | 5 +- .../cloud/spanner/OpenTelemetrySpanTest.java | 2 + .../google/cloud/spanner/PgNumericTest.java | 2 + .../google/cloud/spanner/ReadAsyncTest.java | 2 + ...adWriteTransactionWithInlineBeginTest.java | 5 +- .../RetryOnInvalidatedSessionTest.java | 5 +- .../cloud/spanner/SessionPoolLeakTest.java | 5 +- .../com/google/cloud/spanner/SpanTest.java | 2 + .../cloud/spanner/SpannerGaxRetryTest.java | 5 +- .../cloud/spanner/SpannerThreadsTest.java | 5 +- .../spanner/StandardBenchmarkMockServer.java | 6 +- .../spanner/TransactionChannelHintTest.java | 5 +- .../TransactionManagerAbortedTest.java | 5 +- .../connection/AbstractMockServerTest.java | 5 +- .../LocalConnectionCheckerTest.java | 2 + .../spanner/spi/v1/GapicSpannerRpcTest.java | 5 +- .../cloud/spanner/spi/v1/GfeLatencyTest.java | 5 +- .../spanner/spi/v1/SpannerRpcMetricsTest.java | 5 +- .../cloud/spanner/v1/SpannerClientTest.java | 4 +- 30 files changed, 169 insertions(+), 42 deletions(-) create mode 100644 google-cloud-spanner/src/test/java/com/google/cloud/spanner/DisableDefaultMtlsProvider.java diff --git a/google-cloud-spanner/pom.xml b/google-cloud-spanner/pom.xml index 361f4bc9ff0..d2b25b04504 100644 --- a/google-cloud-spanner/pom.xml +++ b/google-cloud-spanner/pom.xml @@ -369,6 +369,20 @@ test + + + net.bytebuddy + byte-buddy + 1.17.7 + test + + + net.bytebuddy + byte-buddy-agent + 1.17.7 + test + + com.google.api.grpc diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/AbstractAsyncTransactionTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/AbstractAsyncTransactionTest.java index 4abe06b1028..94c8cb3f251 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/AbstractAsyncTransactionTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/AbstractAsyncTransactionTest.java @@ -16,6 +16,7 @@ package com.google.cloud.spanner; +import static com.google.cloud.spanner.DisableDefaultMtlsProvider.disableDefaultMtlsProvider; import static com.google.cloud.spanner.MockSpannerTestUtil.EMPTY_KEY_VALUE_RESULTSET; import static com.google.cloud.spanner.MockSpannerTestUtil.INVALID_UPDATE_STATEMENT; import static com.google.cloud.spanner.MockSpannerTestUtil.READ_MULTIPLE_KEY_VALUE_RESULTSET; @@ -56,6 +57,7 @@ public abstract class AbstractAsyncTransactionTest { @BeforeClass public static void setup() throws Exception { + disableDefaultMtlsProvider(); mockSpanner = new MockSpannerServiceImpl(); mockSpanner.setAbortProbability(0.0D); mockSpanner.putStatementResult( diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/AbstractMockServerTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/AbstractMockServerTest.java index 76d13e73869..15d308777e8 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/AbstractMockServerTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/AbstractMockServerTest.java @@ -16,6 +16,8 @@ package com.google.cloud.spanner; +import static com.google.cloud.spanner.DisableDefaultMtlsProvider.disableDefaultMtlsProvider; + import com.google.api.gax.grpc.testing.LocalChannelProvider; import com.google.cloud.NoCredentials; import com.google.cloud.spanner.admin.database.v1.MockDatabaseAdminImpl; @@ -31,7 +33,6 @@ import io.grpc.Server; import io.grpc.inprocess.InProcessServerBuilder; import io.grpc.stub.StreamObserver; -import java.io.IOException; import java.util.concurrent.atomic.AtomicBoolean; import org.junit.After; import org.junit.AfterClass; @@ -49,7 +50,8 @@ abstract class AbstractMockServerTest { protected Spanner spanner; @BeforeClass - public static void startMockServer() throws IOException { + public static void startMockServer() throws Exception { + disableDefaultMtlsProvider(); mockSpanner = new MockSpannerServiceImpl(); mockSpanner.setAbortProbability(0.0D); // We don't want any unpredictable aborted transactions. mockInstanceAdmin = new MockInstanceAdminImpl(); diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/AbstractNettyMockServerTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/AbstractNettyMockServerTest.java index a763f98cf0f..e51c842fee4 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/AbstractNettyMockServerTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/AbstractNettyMockServerTest.java @@ -16,6 +16,8 @@ package com.google.cloud.spanner; +import static com.google.cloud.spanner.DisableDefaultMtlsProvider.disableDefaultMtlsProvider; + import com.google.api.gax.grpc.testing.LocalChannelProvider; import com.google.cloud.NoCredentials; import io.grpc.ForwardingServerCall; @@ -26,7 +28,6 @@ import io.grpc.ServerCallHandler; import io.grpc.ServerInterceptor; import io.grpc.netty.shaded.io.grpc.netty.NettyServerBuilder; -import java.io.IOException; import java.net.InetSocketAddress; import java.util.Random; import java.util.concurrent.ExecutorService; @@ -52,7 +53,8 @@ abstract class AbstractNettyMockServerTest { protected Spanner spanner; @BeforeClass - public static void startMockServer() throws IOException { + public static void startMockServer() throws Exception { + disableDefaultMtlsProvider(); mockSpanner = new MockSpannerServiceImpl(); mockSpanner.setAbortProbability(0.0D); // We don't want any unpredictable aborted transactions. diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/BackendExhaustedTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/BackendExhaustedTest.java index d9bc779587f..76cc20cb4de 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/BackendExhaustedTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/BackendExhaustedTest.java @@ -16,6 +16,7 @@ package com.google.cloud.spanner; +import static com.google.cloud.spanner.DisableDefaultMtlsProvider.disableDefaultMtlsProvider; import static com.google.common.truth.Truth.assertThat; import com.google.api.gax.grpc.testing.LocalChannelProvider; @@ -32,7 +33,6 @@ import io.grpc.Server; import io.grpc.Status; import io.grpc.inprocess.InProcessServerBuilder; -import java.io.IOException; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.ScheduledThreadPoolExecutor; @@ -89,7 +89,8 @@ public class BackendExhaustedTest { private DatabaseClientImpl client; @BeforeClass - public static void startStaticServer() throws IOException { + public static void startStaticServer() throws Exception { + disableDefaultMtlsProvider(); mockSpanner = new MockSpannerServiceImpl(); mockSpanner.setAbortProbability(0.0D); // We don't want any unpredictable aborted transactions. mockSpanner.putStatementResult(StatementResult.update(UPDATE_STATEMENT, UPDATE_COUNT)); diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/BatchCreateSessionsSlowTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/BatchCreateSessionsSlowTest.java index 72d04d94614..2807523f40b 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/BatchCreateSessionsSlowTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/BatchCreateSessionsSlowTest.java @@ -15,6 +15,7 @@ */ package com.google.cloud.spanner; +import static com.google.cloud.spanner.DisableDefaultMtlsProvider.disableDefaultMtlsProvider; import static com.google.cloud.spanner.MockSpannerTestUtil.READ_ONE_KEY_VALUE_RESULTSET; import static com.google.cloud.spanner.MockSpannerTestUtil.READ_ONE_KEY_VALUE_STATEMENT; import static com.google.cloud.spanner.MockSpannerTestUtil.SELECT1; @@ -32,7 +33,6 @@ import com.google.common.util.concurrent.MoreExecutors; import io.grpc.Server; import io.grpc.inprocess.InProcessServerBuilder; -import java.io.IOException; import java.time.Duration; import java.util.ArrayList; import java.util.List; @@ -59,7 +59,8 @@ public class BatchCreateSessionsSlowTest { private Spanner spanner; @BeforeClass - public static void startStaticServer() throws IOException { + public static void startStaticServer() throws Exception { + disableDefaultMtlsProvider(); mockSpanner = new MockSpannerServiceImpl(); mockSpanner.setAbortProbability(0.0D); // We don't want any unpredictable aborted transactions. mockSpanner.putStatementResult( diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/BatchCreateSessionsTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/BatchCreateSessionsTest.java index 8d359428c77..4ff06755494 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/BatchCreateSessionsTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/BatchCreateSessionsTest.java @@ -16,6 +16,7 @@ package com.google.cloud.spanner; +import static com.google.cloud.spanner.DisableDefaultMtlsProvider.disableDefaultMtlsProvider; import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.MatcherAssert.assertThat; @@ -33,7 +34,6 @@ import io.grpc.Server; import io.grpc.Status; import io.grpc.inprocess.InProcessServerBuilder; -import java.io.IOException; import java.util.concurrent.TimeUnit; import org.junit.AfterClass; import org.junit.Before; @@ -78,7 +78,8 @@ public class BatchCreateSessionsTest { private static LocalChannelProvider channelProvider; @BeforeClass - public static void startStaticServer() throws IOException { + public static void startStaticServer() throws Exception { + disableDefaultMtlsProvider(); mockSpanner = new MockSpannerServiceImpl(); mockSpanner.setAbortProbability(0.0D); // We don't want any unpredictable aborted transactions. mockSpanner.putStatementResult(StatementResult.query(SELECT1AND2, SELECT1_RESULTSET)); diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/ChannelUsageTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/ChannelUsageTest.java index 30e06719181..a06eeb91662 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/ChannelUsageTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/ChannelUsageTest.java @@ -16,6 +16,7 @@ package com.google.cloud.spanner; +import static com.google.cloud.spanner.DisableDefaultMtlsProvider.disableDefaultMtlsProvider; import static io.grpc.Grpc.TRANSPORT_ATTR_REMOTE_ADDR; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; @@ -40,7 +41,6 @@ import io.grpc.ServerCallHandler; import io.grpc.ServerInterceptor; import io.grpc.netty.shaded.io.grpc.netty.NettyServerBuilder; -import java.io.IOException; import java.net.InetSocketAddress; import java.time.Duration; import java.util.Arrays; @@ -113,7 +113,8 @@ public static Collection data() { private static Level originalLogLevel; @BeforeClass - public static void startServer() throws IOException { + public static void startServer() throws Exception { + disableDefaultMtlsProvider(); mockSpanner = new MockSpannerServiceImpl(); mockSpanner.setAbortProbability(0.0D); // We don't want any unpredictable aborted transactions. mockSpanner.putStatementResult(StatementResult.query(SELECT1, SELECT1_RESULTSET)); diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/DatabaseClientImplTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/DatabaseClientImplTest.java index fa95c551838..9ca5c17330a 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/DatabaseClientImplTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/DatabaseClientImplTest.java @@ -16,6 +16,7 @@ package com.google.cloud.spanner; +import static com.google.cloud.spanner.DisableDefaultMtlsProvider.disableDefaultMtlsProvider; import static com.google.cloud.spanner.MockSpannerTestUtil.READ_COLUMN_NAMES; import static com.google.cloud.spanner.MockSpannerTestUtil.READ_ONE_KEY_VALUE_RESULTSET; import static com.google.cloud.spanner.MockSpannerTestUtil.READ_ONE_KEY_VALUE_STATEMENT; @@ -113,7 +114,6 @@ import io.grpc.protobuf.lite.ProtoLiteUtils; import io.opencensus.trace.Tracing; import io.opentelemetry.api.OpenTelemetry; -import java.io.IOException; import java.nio.charset.StandardCharsets; import java.time.Duration; import java.time.Instant; @@ -209,7 +209,8 @@ public class DatabaseClientImplTest { private static ExecutorService executor; @BeforeClass - public static void startStaticServer() throws IOException { + public static void startStaticServer() throws Exception { + disableDefaultMtlsProvider(); mockSpanner = new MockSpannerServiceImpl(); mockSpanner.setAbortProbability(0.0D); // We don't want any unpredictable aborted transactions. mockSpanner.putStatementResult(StatementResult.update(UPDATE_STATEMENT, UPDATE_COUNT)); diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/DatabaseClientImplWithDefaultRWTransactionOptionsTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/DatabaseClientImplWithDefaultRWTransactionOptionsTest.java index 6be28413faf..f3199ae3683 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/DatabaseClientImplWithDefaultRWTransactionOptionsTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/DatabaseClientImplWithDefaultRWTransactionOptionsTest.java @@ -16,6 +16,7 @@ package com.google.cloud.spanner; +import static com.google.cloud.spanner.DisableDefaultMtlsProvider.disableDefaultMtlsProvider; import static com.google.cloud.spanner.MockSpannerTestUtil.INVALID_SELECT_STATEMENT; import static com.google.cloud.spanner.MockSpannerTestUtil.SELECT1; import static com.google.cloud.spanner.MockSpannerTestUtil.SELECT1_RESULTSET; @@ -41,7 +42,6 @@ import io.grpc.Server; import io.grpc.Status; import io.grpc.inprocess.InProcessServerBuilder; -import java.io.IOException; import java.util.Collections; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; @@ -83,7 +83,8 @@ public class DatabaseClientImplWithDefaultRWTransactionOptionsTest { private DatabaseClient clientWithSerOptimisticOption; @BeforeClass - public static void startStaticServer() throws IOException { + public static void startStaticServer() throws Exception { + disableDefaultMtlsProvider(); mockSpanner = new MockSpannerServiceImpl(); mockSpanner.setAbortProbability(0.0D); // We don't want any unpredictable aborted transactions. mockSpanner.putStatementResult(StatementResult.update(UPDATE_STATEMENT, UPDATE_COUNT)); diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/DisableDefaultMtlsProvider.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/DisableDefaultMtlsProvider.java new file mode 100644 index 00000000000..bf287da5d42 --- /dev/null +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/DisableDefaultMtlsProvider.java @@ -0,0 +1,73 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.spanner; + +import static net.bytebuddy.agent.builder.AgentBuilder.RedefinitionStrategy.RETRANSFORMATION; +import static net.bytebuddy.implementation.bytecode.assign.Assigner.Typing.DYNAMIC; +import static net.bytebuddy.matcher.ElementMatchers.is; +import static net.bytebuddy.matcher.ElementMatchers.named; +import static net.bytebuddy.matcher.ElementMatchers.none; + +import com.google.auth.mtls.DefaultMtlsProviderFactory; +import java.lang.instrument.Instrumentation; +import java.lang.instrument.UnmodifiableClassException; +import net.bytebuddy.agent.ByteBuddyAgent; +import net.bytebuddy.agent.builder.AgentBuilder; +import net.bytebuddy.asm.Advice; + +/** Temporary fix for https://github.com/googleapis/sdk-platform-java/issues/3911. */ +public class DisableDefaultMtlsProvider { + static class DisableMtlsCheck { + @Advice.OnMethodEnter(skipOn = Advice.OnDefaultValue.class) + public static boolean before() { + // Skip original method execution + return false; + } + + @Advice.OnMethodExit + public static void after( + @Advice.Return(readOnly = false, typing = DYNAMIC) Object returnValue) { + returnValue = null; + } + } + + static void premain(String agentArgs, Instrumentation inst) { + new AgentBuilder.Default() + .disableClassFormatChanges() + .with(RETRANSFORMATION) + .ignore(none()) + .type(is(DefaultMtlsProviderFactory.class)) + .transform( + (builder, typeDescription, classLoader, module, protectionDomain) -> + builder.visit(Advice.to(DisableMtlsCheck.class).on(named("create")))) + .installOn(inst); + } + + private static boolean initialized = false; + + public static void disableDefaultMtlsProvider() throws UnmodifiableClassException { + synchronized (DisableDefaultMtlsProvider.class) { + if (initialized) { + return; + } + Instrumentation instrumentation = ByteBuddyAgent.install(); + premain("", instrumentation); + instrumentation.retransformClasses(DefaultMtlsProviderFactory.class); + initialized = true; + } + } +} diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/InlineBeginTransactionTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/InlineBeginTransactionTest.java index 6a4f832633a..dae77037957 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/InlineBeginTransactionTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/InlineBeginTransactionTest.java @@ -16,6 +16,7 @@ package com.google.cloud.spanner; +import static com.google.cloud.spanner.DisableDefaultMtlsProvider.disableDefaultMtlsProvider; import static com.google.cloud.spanner.SpannerApiFutures.get; import static com.google.common.truth.Truth.assertThat; import static org.junit.Assert.assertEquals; @@ -56,7 +57,6 @@ import io.grpc.Server; import io.grpc.Status; import io.grpc.inprocess.InProcessServerBuilder; -import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; @@ -140,7 +140,8 @@ public class InlineBeginTransactionTest { protected Spanner spanner; @BeforeClass - public static void startStaticServer() throws IOException { + public static void startStaticServer() throws Exception { + disableDefaultMtlsProvider(); mockSpanner = new MockSpannerServiceImpl(); mockSpanner.setAbortProbability(0.0D); // We don't want any unpredictable aborted transactions. mockSpanner.putStatementResult(StatementResult.update(UPDATE_STATEMENT, UPDATE_COUNT)); diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/OpenTelemetrySpanTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/OpenTelemetrySpanTest.java index 90e66526f14..732709a7310 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/OpenTelemetrySpanTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/OpenTelemetrySpanTest.java @@ -16,6 +16,7 @@ package com.google.cloud.spanner; +import static com.google.cloud.spanner.DisableDefaultMtlsProvider.disableDefaultMtlsProvider; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertThrows; @@ -174,6 +175,7 @@ public static void setupOpenTelemetry() { @BeforeClass public static void startStaticServer() throws Exception { + disableDefaultMtlsProvider(); // Incorporating OpenCensus tracer to ensure that OpenTraces traces are utilized if enabled, // regardless of the presence of OpenCensus tracer. java.lang.reflect.Field field = Tracing.class.getDeclaredField("traceComponent"); diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/PgNumericTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/PgNumericTest.java index 40591d17fe8..a3266d0505c 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/PgNumericTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/PgNumericTest.java @@ -16,6 +16,7 @@ package com.google.cloud.spanner; +import static com.google.cloud.spanner.DisableDefaultMtlsProvider.disableDefaultMtlsProvider; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; @@ -83,6 +84,7 @@ public class PgNumericTest { @BeforeClass public static void beforeClass() throws Exception { + disableDefaultMtlsProvider(); mockSpanner = new MockSpannerServiceImpl(); mockSpanner.setAbortProbability(0.0D); diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/ReadAsyncTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/ReadAsyncTest.java index f793bb0ee60..3704b118906 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/ReadAsyncTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/ReadAsyncTest.java @@ -16,6 +16,7 @@ package com.google.cloud.spanner; +import static com.google.cloud.spanner.DisableDefaultMtlsProvider.disableDefaultMtlsProvider; import static com.google.cloud.spanner.MockSpannerTestUtil.*; import static com.google.cloud.spanner.SpannerApiFutures.get; import static com.google.common.truth.Truth.assertThat; @@ -69,6 +70,7 @@ public class ReadAsyncTest { @BeforeClass public static void setup() throws Exception { + disableDefaultMtlsProvider(); mockSpanner = new MockSpannerServiceImpl(); mockSpanner.putStatementResult( StatementResult.query(READ_ONE_KEY_VALUE_STATEMENT, READ_ONE_KEY_VALUE_RESULTSET)); diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/ReadWriteTransactionWithInlineBeginTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/ReadWriteTransactionWithInlineBeginTest.java index aa268382b34..3078cab0cbe 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/ReadWriteTransactionWithInlineBeginTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/ReadWriteTransactionWithInlineBeginTest.java @@ -16,6 +16,7 @@ package com.google.cloud.spanner; +import static com.google.cloud.spanner.DisableDefaultMtlsProvider.disableDefaultMtlsProvider; import static com.google.common.truth.Truth.assertThat; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertThrows; @@ -38,7 +39,6 @@ import io.grpc.Server; import io.grpc.Status; import io.grpc.inprocess.InProcessServerBuilder; -import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; @@ -101,7 +101,8 @@ public class ReadWriteTransactionWithInlineBeginTest { private DatabaseClient client; @BeforeClass - public static void startStaticServer() throws IOException { + public static void startStaticServer() throws Exception { + disableDefaultMtlsProvider(); mockSpanner = new MockSpannerServiceImpl(); mockSpanner.setAbortProbability(0.0D); // We don't want any unpredictable aborted transactions. mockSpanner.putStatementResult(StatementResult.update(UPDATE_STATEMENT, UPDATE_COUNT)); diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/RetryOnInvalidatedSessionTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/RetryOnInvalidatedSessionTest.java index 5496ad531bf..6a0f16c02b1 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/RetryOnInvalidatedSessionTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/RetryOnInvalidatedSessionTest.java @@ -16,6 +16,7 @@ package com.google.cloud.spanner; +import static com.google.cloud.spanner.DisableDefaultMtlsProvider.disableDefaultMtlsProvider; import static com.google.cloud.spanner.SpannerApiFutures.get; import static com.google.common.truth.Truth.assertThat; import static org.junit.Assert.assertThrows; @@ -45,7 +46,6 @@ import com.google.spanner.v1.TypeCode; import io.grpc.Server; import io.grpc.inprocess.InProcessServerBuilder; -import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; @@ -162,7 +162,8 @@ public static Collection data() { private static ExecutorService executor; @BeforeClass - public static void startStaticServer() throws IOException { + public static void startStaticServer() throws Exception { + disableDefaultMtlsProvider(); mockSpanner = new MockSpannerServiceImpl(); mockSpanner.setAbortProbability(0.0D); // We don't want any unpredictable aborted transactions. mockSpanner.putStatementResult( diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/SessionPoolLeakTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/SessionPoolLeakTest.java index 8ccea443dc1..080091e6615 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/SessionPoolLeakTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/SessionPoolLeakTest.java @@ -16,6 +16,7 @@ package com.google.cloud.spanner; +import static com.google.cloud.spanner.DisableDefaultMtlsProvider.disableDefaultMtlsProvider; import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.MatcherAssert.assertThat; @@ -38,7 +39,6 @@ import io.grpc.Server; import io.grpc.StatusRuntimeException; import io.grpc.inprocess.InProcessServerBuilder; -import java.io.IOException; import java.util.concurrent.ScheduledThreadPoolExecutor; import org.junit.After; import org.junit.AfterClass; @@ -62,7 +62,8 @@ public class SessionPoolLeakTest { private SessionPool pool; @BeforeClass - public static void startStaticServer() throws IOException { + public static void startStaticServer() throws Exception { + disableDefaultMtlsProvider(); mockSpanner = new MockSpannerServiceImpl(); mockSpanner.setAbortProbability(0.0D); // We don't want any unpredictable aborted transactions. String uniqueName = InProcessServerBuilder.generateName(); diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/SpanTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/SpanTest.java index 5e9825c9659..38aa31ad0b1 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/SpanTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/SpanTest.java @@ -16,6 +16,7 @@ package com.google.cloud.spanner; +import static com.google.cloud.spanner.DisableDefaultMtlsProvider.disableDefaultMtlsProvider; import static com.google.common.truth.Truth.assertThat; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertThrows; @@ -121,6 +122,7 @@ public static void startStaticServer() throws Exception { "This test is only supported on JDK11 and lower", JavaVersionUtil.getJavaMajorVersion() < 12); + disableDefaultMtlsProvider(); // Use a little reflection to set the test tracer. // This is not possible in Java 12 and later. java.lang.reflect.Field field = Tracing.class.getDeclaredField("traceComponent"); diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/SpannerGaxRetryTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/SpannerGaxRetryTest.java index d132a0805df..ac04addaf67 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/SpannerGaxRetryTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/SpannerGaxRetryTest.java @@ -16,6 +16,7 @@ package com.google.cloud.spanner; +import static com.google.cloud.spanner.DisableDefaultMtlsProvider.disableDefaultMtlsProvider; import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.MatcherAssert.assertThat; @@ -40,7 +41,6 @@ import io.grpc.StatusRuntimeException; import io.grpc.inprocess.InProcessServerBuilder; import io.grpc.protobuf.ProtoUtils; -import java.io.IOException; import java.time.Duration; import java.util.concurrent.ScheduledThreadPoolExecutor; import java.util.concurrent.TimeUnit; @@ -111,7 +111,8 @@ public class SpannerGaxRetryTest { private DatabaseClient clientWithTimeout; @BeforeClass - public static void startStaticServer() throws IOException { + public static void startStaticServer() throws Exception { + disableDefaultMtlsProvider(); mockSpanner = new MockSpannerServiceImpl(); mockSpanner.setAbortProbability(0.0D); // We don't want any unpredictable aborted transactions. mockSpanner.putStatementResult(StatementResult.query(SELECT1AND2, SELECT1_RESULTSET)); diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/SpannerThreadsTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/SpannerThreadsTest.java index 662b7742b5f..0d11bf6ccb7 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/SpannerThreadsTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/SpannerThreadsTest.java @@ -16,6 +16,7 @@ package com.google.cloud.spanner; +import static com.google.cloud.spanner.DisableDefaultMtlsProvider.disableDefaultMtlsProvider; import static org.hamcrest.CoreMatchers.*; import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.Assert.assertEquals; @@ -36,7 +37,6 @@ import com.google.spanner.v1.StructType.Field; import io.grpc.*; import io.grpc.netty.shaded.io.grpc.netty.NettyServerBuilder; -import java.io.IOException; import java.net.InetSocketAddress; import java.util.*; import java.util.concurrent.TimeUnit; @@ -88,12 +88,13 @@ public class SpannerThreadsTest { private static InetSocketAddress address; @BeforeClass - public static void startServer() throws IOException { + public static void startServer() throws Exception { assumeTrue( "Skip tests when emulator is enabled as this test interferes with the check whether the" + " emulator is running", System.getenv("SPANNER_EMULATOR_HOST") == null); + disableDefaultMtlsProvider(); mockSpanner = new MockSpannerServiceImpl(); mockSpanner.setAbortProbability(0.0D); // We don't want any unpredictable aborted transactions. mockSpanner.putStatementResult(StatementResult.query(SELECT1AND2, SELECT1_RESULTSET)); diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/StandardBenchmarkMockServer.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/StandardBenchmarkMockServer.java index 4fce617a15e..2940adbacef 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/StandardBenchmarkMockServer.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/StandardBenchmarkMockServer.java @@ -16,6 +16,8 @@ package com.google.cloud.spanner; +import static com.google.cloud.spanner.DisableDefaultMtlsProvider.disableDefaultMtlsProvider; + import com.google.api.gax.grpc.testing.LocalChannelProvider; import com.google.api.gax.rpc.TransportChannelProvider; import com.google.cloud.spanner.MockSpannerServiceImpl.SimulatedExecutionTime; @@ -31,7 +33,6 @@ import io.grpc.Server; import io.grpc.Status; import io.grpc.inprocess.InProcessServerBuilder; -import java.io.IOException; /** Standard mock server used for benchmarking. */ class StandardBenchmarkMockServer { @@ -83,7 +84,8 @@ class StandardBenchmarkMockServer { private Server server; private LocalChannelProvider channelProvider; - TransportChannelProvider start() throws IOException { + TransportChannelProvider start() throws Exception { + disableDefaultMtlsProvider(); mockSpanner = new MockSpannerServiceImpl(); mockSpanner.setAbortProbability(0.0D); // We don't want any unpredictable aborted transactions. mockSpanner.putStatementResult(StatementResult.update(UPDATE_STATEMENT, UPDATE_COUNT)); diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/TransactionChannelHintTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/TransactionChannelHintTest.java index 14658210f44..b68ef4667d5 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/TransactionChannelHintTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/TransactionChannelHintTest.java @@ -16,6 +16,7 @@ package com.google.cloud.spanner; +import static com.google.cloud.spanner.DisableDefaultMtlsProvider.disableDefaultMtlsProvider; import static com.google.cloud.spanner.MockSpannerTestUtil.READ_COLUMN_NAMES; import static com.google.cloud.spanner.MockSpannerTestUtil.READ_ONE_KEY_VALUE_RESULTSET; import static com.google.cloud.spanner.MockSpannerTestUtil.READ_ONE_KEY_VALUE_STATEMENT; @@ -43,7 +44,6 @@ import io.grpc.ServerCallHandler; import io.grpc.ServerInterceptor; import io.grpc.netty.shaded.io.grpc.netty.NettyServerBuilder; -import java.io.IOException; import java.net.InetSocketAddress; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; @@ -101,7 +101,8 @@ public class TransactionChannelHintTest { private static Level originalLogLevel; @BeforeClass - public static void startServer() throws IOException { + public static void startServer() throws Exception { + disableDefaultMtlsProvider(); mockSpanner = new MockSpannerServiceImpl(); mockSpanner.setAbortProbability(0.0D); // We don't want any unpredictable aborted transactions. mockSpanner.putStatementResult(StatementResult.query(SELECT1, SELECT1_RESULTSET)); diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/TransactionManagerAbortedTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/TransactionManagerAbortedTest.java index a437b41ddb4..fdf44f0b228 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/TransactionManagerAbortedTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/TransactionManagerAbortedTest.java @@ -16,6 +16,7 @@ package com.google.cloud.spanner; +import static com.google.cloud.spanner.DisableDefaultMtlsProvider.disableDefaultMtlsProvider; import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.MatcherAssert.assertThat; @@ -35,7 +36,6 @@ import com.google.spanner.v1.TypeCode; import io.grpc.Server; import io.grpc.inprocess.InProcessServerBuilder; -import java.io.IOException; import java.util.Arrays; import java.util.Collections; import java.util.concurrent.ScheduledThreadPoolExecutor; @@ -127,7 +127,8 @@ public class TransactionManagerAbortedTest { private static Spanner spanner; @BeforeClass - public static void startStaticServer() throws IOException { + public static void startStaticServer() throws Exception { + disableDefaultMtlsProvider(); mockSpanner = new MockSpannerServiceImpl(); mockSpanner.setAbortProbability(0.0D); // We don't want any unpredictable aborted transactions. mockSpanner.putStatementResult( diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/AbstractMockServerTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/AbstractMockServerTest.java index 201651cfd57..363491f809c 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/AbstractMockServerTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/AbstractMockServerTest.java @@ -16,6 +16,8 @@ package com.google.cloud.spanner.connection; +import static com.google.cloud.spanner.DisableDefaultMtlsProvider.disableDefaultMtlsProvider; + import com.google.cloud.spanner.Dialect; import com.google.cloud.spanner.ForceCloseSpannerFunction; import com.google.cloud.spanner.MockSpannerServiceImpl; @@ -156,7 +158,8 @@ public abstract class AbstractMockServerTest { private static boolean clientStreamParentHandlers; @BeforeClass - public static void startStaticServer() throws IOException { + public static void startStaticServer() throws Exception { + disableDefaultMtlsProvider(); startStaticServer(createServerInterceptor()); } diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/LocalConnectionCheckerTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/LocalConnectionCheckerTest.java index daf42b55af4..487ac3c0180 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/LocalConnectionCheckerTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/LocalConnectionCheckerTest.java @@ -15,6 +15,7 @@ */ package com.google.cloud.spanner.connection; +import static com.google.cloud.spanner.DisableDefaultMtlsProvider.disableDefaultMtlsProvider; import static com.google.cloud.spanner.MockSpannerTestUtil.SELECT1; import static com.google.cloud.spanner.MockSpannerTestUtil.SELECT1_RESULTSET; import static org.junit.Assert.assertEquals; @@ -39,6 +40,7 @@ public class LocalConnectionCheckerTest { @BeforeClass public static void beforeClass() throws Exception { + disableDefaultMtlsProvider(); mockSpanner = new MockSpannerServiceImpl(); mockSpanner.setAbortProbability(0.0D); // We don't want any unpredictable aborted transactions. diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/spi/v1/GapicSpannerRpcTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/spi/v1/GapicSpannerRpcTest.java index e46f61a8ce7..ee90f99d260 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/spi/v1/GapicSpannerRpcTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/spi/v1/GapicSpannerRpcTest.java @@ -16,6 +16,7 @@ package com.google.cloud.spanner.spi.v1; +import static com.google.cloud.spanner.DisableDefaultMtlsProvider.disableDefaultMtlsProvider; import static com.google.common.truth.Truth.assertThat; import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.Assert.assertEquals; @@ -83,7 +84,6 @@ import io.opentelemetry.sdk.OpenTelemetrySdk; import io.opentelemetry.sdk.trace.SdkTracerProvider; import io.opentelemetry.sdk.trace.samplers.Sampler; -import java.io.IOException; import java.net.InetSocketAddress; import java.time.Duration; import java.util.HashMap; @@ -166,7 +166,8 @@ public static Object[] data() { } @Before - public void startServer() throws IOException { + public void startServer() throws Exception { + disableDefaultMtlsProvider(); // Enable OpenTelemetry tracing. SpannerOptionsHelper.resetActiveTracingFramework(); SpannerOptions.enableOpenTelemetryTraces(); diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/spi/v1/GfeLatencyTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/spi/v1/GfeLatencyTest.java index f2d8a07538c..5067eb09ff9 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/spi/v1/GfeLatencyTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/spi/v1/GfeLatencyTest.java @@ -16,6 +16,7 @@ package com.google.cloud.spanner.spi.v1; +import static com.google.cloud.spanner.DisableDefaultMtlsProvider.disableDefaultMtlsProvider; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; @@ -48,7 +49,6 @@ import io.opencensus.stats.ViewData; import io.opencensus.tags.TagKey; import io.opencensus.tags.TagValue; -import java.io.IOException; import java.net.InetSocketAddress; import java.util.List; import java.util.Map; @@ -132,7 +132,8 @@ public class GfeLatencyTest { Statement.of("UPDATE FOO SET BAR=1 WHERE BAZ=2"); @BeforeClass - public static void startServer() throws IOException { + public static void startServer() throws Exception { + disableDefaultMtlsProvider(); //noinspection deprecation SpannerRpcViews.registerGfeLatencyAndHeaderMissingCountViews(); diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/spi/v1/SpannerRpcMetricsTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/spi/v1/SpannerRpcMetricsTest.java index 049ce0d1960..89c874fe204 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/spi/v1/SpannerRpcMetricsTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/spi/v1/SpannerRpcMetricsTest.java @@ -16,6 +16,7 @@ package com.google.cloud.spanner.spi.v1; +import static com.google.cloud.spanner.DisableDefaultMtlsProvider.disableDefaultMtlsProvider; import static org.junit.Assert.assertEquals; import com.google.cloud.NoCredentials; @@ -42,7 +43,6 @@ import io.opentelemetry.sdk.metrics.SdkMeterProvider; import io.opentelemetry.sdk.metrics.data.MetricData; import io.opentelemetry.sdk.testing.exporter.InMemoryMetricReader; -import java.io.IOException; import java.net.InetSocketAddress; import java.util.Collection; import java.util.HashMap; @@ -111,7 +111,8 @@ public class SpannerRpcMetricsTest { private static InMemoryMetricReader inMemoryMetricReaderInjected; @BeforeClass - public static void startServer() throws IOException { + public static void startServer() throws Exception { + disableDefaultMtlsProvider(); SpannerOptions.enableOpenTelemetryMetrics(); mockSpanner = new MockSpannerServiceImpl(); mockSpanner.setAbortProbability(0.0D); // We don't want any unpredictable aborted transactions. diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/v1/SpannerClientTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/v1/SpannerClientTest.java index 35ed41c0d86..b8ebc9030f2 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/v1/SpannerClientTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/v1/SpannerClientTest.java @@ -16,6 +16,7 @@ package com.google.cloud.spanner.v1; +import static com.google.cloud.spanner.DisableDefaultMtlsProvider.disableDefaultMtlsProvider; import static com.google.cloud.spanner.v1.SpannerClient.ListSessionsPagedResponse; import com.google.api.gax.core.NoCredentialsProvider; @@ -99,7 +100,8 @@ public class SpannerClientTest { private SpannerClient client; @BeforeClass - public static void startStaticServer() { + public static void startStaticServer() throws Exception { + disableDefaultMtlsProvider(); mockSpanner = new MockSpanner(); mockServiceHelper = new MockServiceHelper( From 366ae826adaef1fbc13c8cfe5a4a0aeaaf596283 Mon Sep 17 00:00:00 2001 From: cloud-java-bot Date: Sat, 20 Sep 2025 05:27:04 +0000 Subject: [PATCH 2/2] chore: generate libraries at Sat Sep 20 05:24:30 UTC 2025 --- .../java/com/google/cloud/spanner/v1/SpannerClientTest.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/v1/SpannerClientTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/v1/SpannerClientTest.java index b8ebc9030f2..35ed41c0d86 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/v1/SpannerClientTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/v1/SpannerClientTest.java @@ -16,7 +16,6 @@ package com.google.cloud.spanner.v1; -import static com.google.cloud.spanner.DisableDefaultMtlsProvider.disableDefaultMtlsProvider; import static com.google.cloud.spanner.v1.SpannerClient.ListSessionsPagedResponse; import com.google.api.gax.core.NoCredentialsProvider; @@ -100,8 +99,7 @@ public class SpannerClientTest { private SpannerClient client; @BeforeClass - public static void startStaticServer() throws Exception { - disableDefaultMtlsProvider(); + public static void startStaticServer() { mockSpanner = new MockSpanner(); mockServiceHelper = new MockServiceHelper(