diff --git a/java-spanner/google-cloud-spanner/src/main/java/com/google/cloud/spanner/GrpcStreamIterator.java b/java-spanner/google-cloud-spanner/src/main/java/com/google/cloud/spanner/GrpcStreamIterator.java index 7b0cb08b5c84..312e841a188c 100644 --- a/java-spanner/google-cloud-spanner/src/main/java/com/google/cloud/spanner/GrpcStreamIterator.java +++ b/java-spanner/google-cloud-spanner/src/main/java/com/google/cloud/spanner/GrpcStreamIterator.java @@ -86,7 +86,7 @@ public String toString() { private boolean callCleared; private boolean closed; @Nullable private String closeMessage; - private final boolean withBeginTransaction; + private volatile boolean withBeginTransaction; private final boolean lastStatement; @Nullable private volatile Timeout streamWaitTimeout; @Nullable private volatile SpannerException error; @@ -156,6 +156,14 @@ void registerListener(AsyncResultSet.StreamMessageListener streamMessageListener } } + @VisibleForTesting + void setCall(SpannerRpc.StreamingCall call, boolean withBeginTransaction) { + synchronized (this) { + this.withBeginTransaction = withBeginTransaction; + } + setCall(call); + } + void setCall(SpannerRpc.StreamingCall call) { Timeout timeout = extractTimeout(call); boolean shouldCancel;