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..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 @@ -741,7 +741,20 @@ protected SpannerOptions(Builder builder) { transportChannelExecutorThreadNameFormat = builder.transportChannelExecutorThreadNameFormat; channelProvider = builder.channelProvider; - channelConfigurator = builder.channelConfigurator; + if (builder.mTLSContext != null) { + channelConfigurator = + channelBuilder -> { + if (builder.channelConfigurator != null) { + channelBuilder = builder.channelConfigurator.apply(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 +1633,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;