diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/DatabaseClientImpl.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/DatabaseClientImpl.java index 92971ff320f..1be91c84f9a 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/DatabaseClientImpl.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/DatabaseClientImpl.java @@ -294,6 +294,8 @@ public TransactionManager transactionManager(TransactionOption... options) { span.setStatus(e); span.end(); throw e; + } finally { + span.end(); } } diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/DatabaseClientImplTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/DatabaseClientImplTest.java index 87ea5c19ce9..bfd68f38595 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/DatabaseClientImplTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/DatabaseClientImplTest.java @@ -4006,7 +4006,10 @@ public void testTransactionManager_usesOptions() { when(pool.getSession()).thenReturn(session); TransactionOption option = mock(TransactionOption.class); - DatabaseClientImpl client = new DatabaseClientImpl(pool, mock(TraceWrapper.class)); + TraceWrapper traceWrapper = + new TraceWrapper(Tracing.getTracer(), OpenTelemetry.noop().getTracer(""), false); + + DatabaseClientImpl client = new DatabaseClientImpl(pool, traceWrapper); try (TransactionManager ignore = client.transactionManager(option)) { verify(session).transactionManager(option); }