From 7a52134281fc77ce9800867dd1204cde2959463a Mon Sep 17 00:00:00 2001 From: Sri Harsha CH Date: Wed, 12 Feb 2025 06:36:13 +0000 Subject: [PATCH 1/3] fix(spanner): release resources in TransactionManager --- .../com/google/cloud/spanner/TransactionManagerImpl.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/TransactionManagerImpl.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/TransactionManagerImpl.java index b1d37f3e4cd..964b82068d8 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/TransactionManagerImpl.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/TransactionManagerImpl.java @@ -80,6 +80,12 @@ public void commit() { } catch (SpannerException e2) { txnState = TransactionState.COMMIT_FAILED; throw e2; + } finally { + // At this point, if the TransactionState is not ABORTED, then the transaction has reached a terminal state. + // We can safely call close() to release resources. + if (getState() != TransactionState.ABORTED) { + close(); + } } } @@ -92,6 +98,9 @@ public void rollback() { txn.rollback(); } finally { txnState = TransactionState.ROLLED_BACK; + // At this point, the TransactionState is ROLLED_BACK which is a terminal state. + // We can safely call close() to release resources. + close(); } } From ff943bafdcee9922817543180728488e54f37a07 Mon Sep 17 00:00:00 2001 From: Sri Harsha CH Date: Wed, 12 Feb 2025 06:55:14 +0000 Subject: [PATCH 2/3] fix(spanner): lint fix --- .../java/com/google/cloud/spanner/TransactionManagerImpl.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/TransactionManagerImpl.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/TransactionManagerImpl.java index 964b82068d8..0fbffa56dea 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/TransactionManagerImpl.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/TransactionManagerImpl.java @@ -81,7 +81,8 @@ public void commit() { txnState = TransactionState.COMMIT_FAILED; throw e2; } finally { - // At this point, if the TransactionState is not ABORTED, then the transaction has reached a terminal state. + // At this point, if the TransactionState is not ABORTED, then the transaction has reached a + // terminal state. // We can safely call close() to release resources. if (getState() != TransactionState.ABORTED) { close(); From cad425693451ff883af07060e578ca77323076ef Mon Sep 17 00:00:00 2001 From: Sri Harsha CH Date: Thu, 13 Feb 2025 12:08:26 +0000 Subject: [PATCH 3/3] chore(spanner): fix comment --- .../com/google/cloud/spanner/TransactionManagerImpl.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/TransactionManagerImpl.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/TransactionManagerImpl.java index 0fbffa56dea..bbf34ab5c8f 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/TransactionManagerImpl.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/TransactionManagerImpl.java @@ -81,8 +81,8 @@ public void commit() { txnState = TransactionState.COMMIT_FAILED; throw e2; } finally { - // At this point, if the TransactionState is not ABORTED, then the transaction has reached a - // terminal state. + // At this point, if the TransactionState is not ABORTED, then the transaction has reached an + // end state. // We can safely call close() to release resources. if (getState() != TransactionState.ABORTED) { close(); @@ -99,7 +99,7 @@ public void rollback() { txn.rollback(); } finally { txnState = TransactionState.ROLLED_BACK; - // At this point, the TransactionState is ROLLED_BACK which is a terminal state. + // At this point, the TransactionState is ROLLED_BACK which is an end state. // We can safely call close() to release resources. close(); }