diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/spi/v1/GapicSpannerRpc.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/spi/v1/GapicSpannerRpc.java index 50af8b0667b..48160736a38 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/spi/v1/GapicSpannerRpc.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/spi/v1/GapicSpannerRpc.java @@ -1408,6 +1408,14 @@ private static T get(final Future future) throws SpannerException { } } + // Before removing this method, please verify with a code owner that it is not used + // in any internal testing infrastructure. + @VisibleForTesting + @Deprecated + GrpcCallContext newCallContext(@Nullable Map options, String resource) { + return newCallContext(options, resource, null, null); + } + @VisibleForTesting GrpcCallContext newCallContext( @Nullable Map options, 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 18270dfdd46..3e1585a658e 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 @@ -93,6 +93,7 @@ /** Tests that opening and closing multiple Spanner instances does not leak any threads. */ @RunWith(JUnit4.class) public class GapicSpannerRpcTest { + private static final Statement SELECT1AND2 = Statement.of("SELECT 1 AS COL1 UNION ALL SELECT 2 AS COL1"); private static final ResultSetMetadata SELECT1AND2_METADATA = @@ -380,6 +381,7 @@ public void testNoCallCredentials() { } private static final class TimeoutHolder { + private Duration timeout; } @@ -454,6 +456,14 @@ public Long run(TransactionContext transaction) throws Exception { } } + @Test + public void testNewCallContextWithNullRequestAndNullMethod() { + SpannerOptions options = SpannerOptions.newBuilder().setProjectId("some-project").build(); + GapicSpannerRpc rpc = new GapicSpannerRpc(options); + assertThat(rpc.newCallContext(optionsMap, "/some/resource", null, null)).isNotNull(); + rpc.shutdown(); + } + @SuppressWarnings("rawtypes") private SpannerOptions createSpannerOptions() { String endpoint = address.getHostString() + ":" + server.getPort();