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();
+ }
}
/**