This is an automated email from the ASF dual-hosted git repository.

damccorm pushed a commit to branch release-2.71
in repository https://gitbox.apache.org/repos/asf/beam.git


The following commit(s) were added to refs/heads/release-2.71 by this push:
     new 798e1a41434 Spanner cherry-picks (#37330)
798e1a41434 is described below

commit 798e1a41434eac717afd3f2a832d16508481145e
Author: Danny McCormick <[email protected]>
AuthorDate: Fri Jan 16 14:06:36 2026 -0500

    Spanner cherry-picks (#37330)
    
    * Pin spanner to old version in gcp bom (#37329)
    
    * Fix spanner io hang by closing connections (#37327)
---
 sdks/java/bom/gcp/build.gradle                               | 12 +++++++++++-
 .../java/org/apache/beam/sdk/io/gcp/spanner/SpannerIO.java   |  7 ++++---
 2 files changed, 15 insertions(+), 4 deletions(-)

diff --git a/sdks/java/bom/gcp/build.gradle b/sdks/java/bom/gcp/build.gradle
index b9c16ac72bb..5b62243c845 100644
--- a/sdks/java/bom/gcp/build.gradle
+++ b/sdks/java/bom/gcp/build.gradle
@@ -20,7 +20,17 @@ apply from: '../common.gradle'
 
 dependencies {
   api platform(project(":sdks:java:bom"))
-  api platform(project.library.java.google_cloud_platform_libraries_bom)
+  api platform(project.library.java.google_cloud_spanner_bom)
+  api platform(project.library.java.google_cloud_platform_libraries_bom) {
+    // TODO(https://github.com/apache/beam/issues/37328) remove exclude and 
google_cloud_spanner_bom after upstream and/or tests fixed
+    exclude group: "com.google.cloud", module: "google-cloud-spanner"
+    exclude group: "com.google.api.grpc", module: 
"proto-google-cloud-spanner-v1"
+    exclude group: "com.google.api.grpc", module: 
"proto-google-cloud-spanner-admin-instance-v1"
+    exclude group: "com.google.api.grpc", module: 
"proto-google-cloud-spanner-admin-database-v1"
+    exclude group: "com.google.api.grpc", module: 
"grpc-google-cloud-spanner-v1"
+    exclude group: "com.google.api.grpc", module: 
"grpc-google-cloud-spanner-admin-instance-v1"
+    exclude group: "com.google.api.grpc", module: 
"grpc-google-cloud-spanner-admin-database-v1"
+  }
   constraints {
     api project.library.java.guava
   }
diff --git 
a/sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/spanner/SpannerIO.java
 
b/sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/spanner/SpannerIO.java
index e060766cbd2..450710112a1 100644
--- 
a/sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/spanner/SpannerIO.java
+++ 
b/sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/spanner/SpannerIO.java
@@ -2101,9 +2101,10 @@ public class SpannerIO {
     // Allow passing the credential from pipeline options to the getDialect() 
call.
     SpannerConfig spannerConfigWithCredential =
         buildSpannerConfigWithCredential(spannerConfig, pipelineOptions);
-    DatabaseClient databaseClient =
-        
SpannerAccessor.getOrCreate(spannerConfigWithCredential).getDatabaseClient();
-    return databaseClient.getDialect();
+    try (SpannerAccessor sa = 
SpannerAccessor.getOrCreate(spannerConfigWithCredential)) {
+      DatabaseClient databaseClient = sa.getDatabaseClient();
+      return databaseClient.getDialect();
+    }
   }
 
   /**

Reply via email to