From e10f10c7f4f0e6d6878633016a9387c2ccc07a79 Mon Sep 17 00:00:00 2001 From: sagnghos Date: Wed, 22 Jan 2025 12:14:00 +0000 Subject: [PATCH 1/2] fix(spanner): moved mTLSContext configurator from builder to construtor --- .../google/cloud/spanner/SpannerOptions.java | 21 ++++++++++--------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/SpannerOptions.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/SpannerOptions.java index 1d0c702cdfc..30b288c9b84 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/SpannerOptions.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/SpannerOptions.java @@ -741,7 +741,17 @@ protected SpannerOptions(Builder builder) { transportChannelExecutorThreadNameFormat = builder.transportChannelExecutorThreadNameFormat; channelProvider = builder.channelProvider; - channelConfigurator = builder.channelConfigurator; + if (builder.mTLSContext != null) { + channelConfigurator = + channelBuilder -> { + if (channelBuilder instanceof NettyChannelBuilder) { + ((NettyChannelBuilder) channelBuilder).sslContext(builder.mTLSContext); + } + return channelBuilder; + }; + } else { + channelConfigurator = builder.channelConfigurator; + } interceptorProvider = builder.interceptorProvider; sessionPoolOptions = builder.sessionPoolOptions != null @@ -1620,15 +1630,6 @@ public SpannerOptions build() { // As we are using plain text, we should never send any credentials. this.setCredentials(NoCredentials.getInstance()); } - if (mTLSContext != null) { - this.setChannelConfigurator( - builder -> { - if (builder instanceof NettyChannelBuilder) { - ((NettyChannelBuilder) builder).sslContext(mTLSContext); - } - return builder; - }); - } if (this.numChannels == null) { this.numChannels = this.grpcGcpExtensionEnabled ? GRPC_GCP_ENABLED_DEFAULT_CHANNELS : DEFAULT_CHANNELS; From f719fe6fc595343631b8ce5846860ab869e63e87 Mon Sep 17 00:00:00 2001 From: sagnghos Date: Wed, 22 Jan 2025 12:56:50 +0000 Subject: [PATCH 2/2] builder configurator properties retained when not null --- .../src/main/java/com/google/cloud/spanner/SpannerOptions.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/SpannerOptions.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/SpannerOptions.java index 30b288c9b84..42fc0c2d0bd 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/SpannerOptions.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/SpannerOptions.java @@ -744,6 +744,9 @@ protected SpannerOptions(Builder builder) { if (builder.mTLSContext != null) { channelConfigurator = channelBuilder -> { + if (builder.channelConfigurator != null) { + channelBuilder = builder.channelConfigurator.apply(channelBuilder); + } if (channelBuilder instanceof NettyChannelBuilder) { ((NettyChannelBuilder) channelBuilder).sslContext(builder.mTLSContext); }