Skip to content

Commit 2463cbf

Browse files
committed
address comments
1 parent 2598291 commit 2463cbf

2 files changed

Lines changed: 56 additions & 5 deletions

File tree

java-spanner/google-cloud-spanner/src/main/java/com/google/cloud/spanner/spi/v1/GapicSpannerRpc.java

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -431,12 +431,15 @@ public GapicSpannerRpc(final SpannerOptions options) {
431431
&& isEnableDirectAccess;
432432
this.readRetrySettings =
433433
options.getSpannerStubSettings().streamingReadSettings().getRetrySettings();
434+
Set<Code> streamingReadRetryableCodes =
435+
options.getSpannerStubSettings().streamingReadSettings().getRetryableCodes();
434436
this.readRetryableCodes =
435-
ImmutableSet.<Code>builder()
436-
.addAll(
437-
options.getSpannerStubSettings().streamingReadSettings().getRetryableCodes())
438-
.add(Code.RESOURCE_EXHAUSTED)
439-
.build();
437+
enableLocationApi
438+
? ImmutableSet.<Code>builder()
439+
.addAll(streamingReadRetryableCodes)
440+
.add(Code.RESOURCE_EXHAUSTED)
441+
.build()
442+
: streamingReadRetryableCodes;
440443
this.executeQueryRetrySettings =
441444
options.getSpannerStubSettings().executeStreamingSqlSettings().getRetrySettings();
442445
this.executeQueryRetryableCodes =

java-spanner/google-cloud-spanner/src/test/java/com/google/cloud/spanner/spi/v1/GapicSpannerRpcTest.java

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
import com.google.api.gax.rpc.ApiCallContext;
3535
import com.google.api.gax.rpc.ApiClientHeaderProvider;
3636
import com.google.api.gax.rpc.HeaderProvider;
37+
import com.google.api.gax.rpc.StatusCode.Code;
3738
import com.google.api.gax.rpc.TransportChannelProvider;
3839
import com.google.auth.Credentials;
3940
import com.google.auth.oauth2.AccessToken;
@@ -1059,6 +1060,53 @@ public boolean isEnableLocationApi() {
10591060
}
10601061
}
10611062

1063+
@Test
1064+
public void testReadRetryableCodesIncludeResourceExhaustedWhenLocationApiEnabled() {
1065+
try {
1066+
SpannerOptions.useEnvironment(
1067+
new SpannerOptions.SpannerEnvironment() {
1068+
@Override
1069+
public boolean isEnableLocationApi() {
1070+
return true;
1071+
}
1072+
});
1073+
GapicSpannerRpc rpc = new GapicSpannerRpc(createSpannerOptions(), true);
1074+
try {
1075+
assertThat(rpc.getReadRetryableCodes()).contains(Code.RESOURCE_EXHAUSTED);
1076+
} finally {
1077+
rpc.shutdown();
1078+
}
1079+
} finally {
1080+
SpannerOptions.useDefaultEnvironment();
1081+
}
1082+
}
1083+
1084+
@Test
1085+
public void testReadRetryableCodesDoNotAddResourceExhaustedWhenLocationApiDisabled() {
1086+
try {
1087+
SpannerOptions.useEnvironment(
1088+
new SpannerOptions.SpannerEnvironment() {
1089+
@Override
1090+
public boolean isEnableLocationApi() {
1091+
return false;
1092+
}
1093+
});
1094+
GapicSpannerRpc rpc = new GapicSpannerRpc(createSpannerOptions(), true);
1095+
try {
1096+
assertThat(rpc.getReadRetryableCodes())
1097+
.isEqualTo(
1098+
createSpannerOptions()
1099+
.getSpannerStubSettings()
1100+
.streamingReadSettings()
1101+
.getRetryableCodes());
1102+
} finally {
1103+
rpc.shutdown();
1104+
}
1105+
} finally {
1106+
SpannerOptions.useDefaultEnvironment();
1107+
}
1108+
}
1109+
10621110
@Test
10631111
public void testGrpcGcpExtensionPreservesChannelConfigurator() throws Exception {
10641112
InstantiatingGrpcChannelProvider.Builder channelProviderBuilder =

0 commit comments

Comments
 (0)