diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/SessionImpl.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/SessionImpl.java index a24742dbfd..a20a6b7b24 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/SessionImpl.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/SessionImpl.java @@ -113,6 +113,10 @@ void setCurrentSpan(Span span) { currentSpan = span; } + Span getCurrentSpan() { + return currentSpan; + } + @Override public long executePartitionedUpdate(Statement stmt, UpdateOption... options) { setActive(null); diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/SessionPool.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/SessionPool.java index cc431b52a5..c9e1b72e77 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/SessionPool.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/SessionPool.java @@ -77,6 +77,7 @@ import io.opencensus.metrics.Metrics; import io.opencensus.trace.Annotation; import io.opencensus.trace.AttributeValue; +import io.opencensus.trace.BlankSpan; import io.opencensus.trace.Span; import io.opencensus.trace.Status; import io.opencensus.trace.Tracer; @@ -1472,11 +1473,15 @@ public void prepareReadWriteTransaction() { private void keepAlive() { markUsed(); + final Span previousSpan = delegate.getCurrentSpan(); + delegate.setCurrentSpan(BlankSpan.INSTANCE); try (ResultSet resultSet = delegate .singleUse(TimestampBound.ofMaxStaleness(60, TimeUnit.SECONDS)) .executeQuery(Statement.newBuilder("SELECT 1").build())) { resultSet.next(); + } finally { + delegate.setCurrentSpan(previousSpan); } }