diff --git a/google-cloud-spanner/pom.xml b/google-cloud-spanner/pom.xml index ea9528bdff0..e5fe3e94824 100644 --- a/google-cloud-spanner/pom.xml +++ b/google-cloud-spanner/pom.xml @@ -438,20 +438,6 @@ test - - - net.bytebuddy - byte-buddy - 1.18.4 - test - - - net.bytebuddy - byte-buddy-agent - 1.18.4 - 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 e2ac7f4835e..0474a807d2b 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,7 +16,6 @@ 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,7 +55,6 @@ 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 15d308777e8..7857054bcb0 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,8 +16,6 @@ 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; @@ -51,7 +49,6 @@ abstract class AbstractMockServerTest { @BeforeClass 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 e51c842fee4..a5d3b62d98d 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,8 +16,6 @@ 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; @@ -54,7 +52,6 @@ abstract class AbstractNettyMockServerTest { @BeforeClass 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/BatchCreateSessionsSlowTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/BatchCreateSessionsSlowTest.java index 2807523f40b..38dcaa91d19 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,7 +15,6 @@ */ 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; @@ -60,7 +59,6 @@ public class BatchCreateSessionsSlowTest { @BeforeClass 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/ChannelUsageTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/ChannelUsageTest.java index 9af7b595121..182c9cc35b5 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,7 +16,6 @@ package com.google.cloud.spanner; -import static com.google.cloud.spanner.DisableDefaultMtlsProvider.disableDefaultMtlsProvider; import static java.util.stream.Collectors.toSet; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; @@ -106,7 +105,6 @@ public static Collection data() { @BeforeClass 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 1623fd3b011..8acb0a7b725 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,7 +16,6 @@ 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; @@ -192,7 +191,6 @@ public class DatabaseClientImplTest { @BeforeClass 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 f3199ae3683..d37bef01895 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,7 +16,6 @@ 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; @@ -84,7 +83,6 @@ public class DatabaseClientImplWithDefaultRWTransactionOptionsTest { @BeforeClass 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 deleted file mode 100644 index bf287da5d42..00000000000 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/DisableDefaultMtlsProvider.java +++ /dev/null @@ -1,73 +0,0 @@ -/* - * 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 dae77037957..db1b39ac0a0 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,7 +16,6 @@ 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; @@ -141,7 +140,6 @@ public class InlineBeginTransactionTest { @BeforeClass 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 7c9eccfbdf0..8ff8827664d 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,7 +16,6 @@ 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; @@ -167,7 +166,6 @@ 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 a3266d0505c..40591d17fe8 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,7 +16,6 @@ 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; @@ -84,7 +83,6 @@ 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 ede202ced3a..1251ee270fa 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,7 +16,6 @@ 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; @@ -70,7 +69,6 @@ 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 3078cab0cbe..492252d486c 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,7 +16,6 @@ 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; @@ -102,7 +101,6 @@ public class ReadWriteTransactionWithInlineBeginTest { @BeforeClass 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/RequestIdMockServerTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/RequestIdMockServerTest.java index c32a633331b..eac63010915 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/RequestIdMockServerTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/RequestIdMockServerTest.java @@ -16,7 +16,6 @@ package com.google.cloud.spanner; -import static com.google.cloud.spanner.DisableDefaultMtlsProvider.disableDefaultMtlsProvider; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotEquals; import static org.junit.Assert.assertNotNull; @@ -103,7 +102,6 @@ public static void setup() throws Exception { assumeTrue(System.getenv("GOOGLE_CLOUD_SPANNER_MULTIPLEXED_SESSIONS") == null); assumeTrue(System.getenv("GOOGLE_CLOUD_SPANNER_MULTIPLEXED_SESSIONS_FOR_RW") == null); - 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/SpanTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/SpanTest.java index 3957697a190..449e78cf612 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,7 +16,6 @@ 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; @@ -122,7 +121,6 @@ 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 ac04addaf67..fc25832860a 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,7 +16,6 @@ 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; @@ -112,7 +111,6 @@ public class SpannerGaxRetryTest { @BeforeClass 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 0d11bf6ccb7..9b6ffaf19ca 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,7 +16,6 @@ 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; @@ -94,7 +93,6 @@ public static void startServer() throws Exception { + " 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 2940adbacef..83255fcf3af 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,8 +16,6 @@ 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; @@ -85,7 +83,6 @@ class StandardBenchmarkMockServer { private LocalChannelProvider channelProvider; 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 339e7da1010..cdb0039ccd5 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,7 +16,6 @@ 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; @@ -104,7 +103,6 @@ public class TransactionChannelHintTest { @BeforeClass 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 fdf44f0b228..ae24eeb7696 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,7 +16,6 @@ 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; @@ -128,7 +127,6 @@ public class TransactionManagerAbortedTest { @BeforeClass 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 6bbd6a41981..67b4c8e0559 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,8 +16,6 @@ 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; @@ -163,7 +161,6 @@ public abstract class AbstractMockServerTest { @BeforeClass 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 487ac3c0180..daf42b55af4 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,7 +15,6 @@ */ 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; @@ -40,7 +39,6 @@ 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 dada645a8c7..b8d57edaf40 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,7 +16,6 @@ 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; @@ -186,7 +185,6 @@ public static Object[] data() { @Before public void startServer() throws Exception { - disableDefaultMtlsProvider(); // Enable OpenTelemetry tracing. SpannerOptionsHelper.resetActiveTracingFramework(); SpannerOptions.enableOpenTelemetryTraces(); @@ -1169,29 +1167,36 @@ public boolean isEnableGcpFallback() { } }); try { - // Setup Options with invalid host to force error - SpannerOptions options = + SpannerOptions.Builder builder = SpannerOptions.newBuilder() .setProjectId("test-project") .setEnableDirectAccess(true) .setHost("http://localhost:1") // Closed port .setCredentials(NoCredentials.getInstance()) - .setOpenTelemetry(openTelemetry) - .build(); + .setOpenTelemetry(openTelemetry); + // Make sure the ExecuteBatchDml RPC fails quickly to keep the test fast. + // Note that the timeout is actually not used. It is the fact that it does not retry that + // makes it fail fast. + builder + .getSpannerStubSettingsBuilder() + .executeBatchDmlSettings() + .setSimpleTimeoutNoRetriesDuration(Duration.ofSeconds(10)); + // Setup Options with invalid host to force error + SpannerOptions options = builder.build(); TestableGapicSpannerRpc rpc = new TestableGapicSpannerRpc(options); try { // Make a call that is expected to fail - try { - rpc.executeBatchDml( - com.google.spanner.v1.ExecuteBatchDmlRequest.newBuilder() - .setSession("projects/p/instances/i/databases/d/sessions/s") - .build(), - null); - } catch (SpannerException e) { - // Expect a connection error. - assertEquals(ErrorCode.UNAVAILABLE, e.getErrorCode()); - } + SpannerException exception = + assertThrows( + SpannerException.class, + () -> + rpc.executeBatchDml( + com.google.spanner.v1.ExecuteBatchDmlRequest.newBuilder() + .setSession("projects/p/instances/i/databases/d/sessions/s") + .build(), + null)); + assertEquals(ErrorCode.UNAVAILABLE, exception.getErrorCode()); // Wait briefly for the 10ms period to trigger the fallback check Thread.sleep(10); @@ -1248,30 +1253,37 @@ public boolean isEnableGcpFallback() { } }); try { - // Setup Options with invalid host to force error - SpannerOptions options = + SpannerOptions.Builder builder = SpannerOptions.newBuilder() .setProjectId("test-project") .setEnableDirectAccess(true) .setHost("http://localhost:1") // Closed port .setCredentials(NoCredentials.getInstance()) - .setOpenTelemetry(openTelemetry) - .build(); + .setOpenTelemetry(openTelemetry); + // Make sure the ExecuteBatchDml RPC fails quickly to keep the test fast. + // Note that the timeout is actually not used. It is the fact that it does not retry that + // makes it fail fast. + builder + .getSpannerStubSettingsBuilder() + .executeBatchDmlSettings() + .setSimpleTimeoutNoRetriesDuration(Duration.ofSeconds(10)); + // Setup Options with invalid host to force error + SpannerOptions options = builder.build(); TestableGapicSpannerRpcWithLowerMinFailedCalls rpc = new TestableGapicSpannerRpcWithLowerMinFailedCalls(options); try { // Make a call that is expected to fail - try { - rpc.executeBatchDml( - com.google.spanner.v1.ExecuteBatchDmlRequest.newBuilder() - .setSession("projects/p/instances/i/databases/d/sessions/s") - .build(), - null); - } catch (SpannerException e) { - // Expect a connection error. - assertEquals(ErrorCode.UNAVAILABLE, e.getErrorCode()); - } + SpannerException exception = + assertThrows( + SpannerException.class, + () -> + rpc.executeBatchDml( + com.google.spanner.v1.ExecuteBatchDmlRequest.newBuilder() + .setSession("projects/p/instances/i/databases/d/sessions/s") + .build(), + null)); + assertEquals(ErrorCode.UNAVAILABLE, exception.getErrorCode()); // Wait briefly for the 10ms period to trigger the fallback check Thread.sleep(10); 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 2f75a251fec..bcded26d685 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,7 +16,6 @@ package com.google.cloud.spanner.spi.v1; -import static com.google.cloud.spanner.DisableDefaultMtlsProvider.disableDefaultMtlsProvider; import static org.junit.Assert.*; import com.google.auth.oauth2.AccessToken; @@ -129,7 +128,6 @@ public class GfeLatencyTest { @BeforeClass 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 95faea16f62..c6095dde7d2 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,7 +16,6 @@ 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; @@ -110,7 +109,6 @@ public class SpannerRpcMetricsTest { @BeforeClass public static void startServer() throws Exception { - disableDefaultMtlsProvider(); SpannerOptions.enableOpenTelemetryMetrics(); mockSpanner = new MockSpannerServiceImpl(); mockSpanner.setAbortProbability(0.0D); // We don't want any unpredictable aborted transactions.