diff --git a/.github/release-please.yml b/.github/release-please.yml
index bd2014774..8c51cd7d6 100644
--- a/.github/release-please.yml
+++ b/.github/release-please.yml
@@ -6,4 +6,9 @@ branches:
releaseType: java-yoshi
bumpMinorPreMajor: true
handleGHRelease: true
+- branch: protobuf-4.x-rc
+ releaseType: java-yoshi
+ bumpMinorPreMajor: true
+ handleGHRelease: true
+ manifest: true
extraFiles: ["README.md"]
diff --git a/.github/workflows/integration-tests-against-emulator.yaml b/.github/workflows/integration-tests-against-emulator.yaml
index 7669c2806..700845182 100644
--- a/.github/workflows/integration-tests-against-emulator.yaml
+++ b/.github/workflows/integration-tests-against-emulator.yaml
@@ -16,7 +16,7 @@ jobs:
- 9020:9020
steps:
- - uses: actions/checkout@v5
+ - uses: actions/checkout@v6
- uses: actions/setup-java@v5
with:
distribution: temurin
diff --git a/.github/workflows/quickperf.yaml b/.github/workflows/quickperf.yaml
index aa0bf2b54..13d55b664 100644
--- a/.github/workflows/quickperf.yaml
+++ b/.github/workflows/quickperf.yaml
@@ -20,7 +20,7 @@ jobs:
quickperf:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v5
+ - uses: actions/checkout@v6
- uses: actions/setup-java@v5
with:
distribution: temurin
diff --git a/.github/workflows/sample-tests.yml b/.github/workflows/sample-tests.yml
index 056ef15cc..4074cabfa 100644
--- a/.github/workflows/sample-tests.yml
+++ b/.github/workflows/sample-tests.yml
@@ -20,7 +20,7 @@ jobs:
test:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v5
+ - uses: actions/checkout@v6
- uses: actions/setup-java@v5
with:
distribution: temurin
diff --git a/.github/workflows/spring-data-jdbc-sample.yaml b/.github/workflows/spring-data-jdbc-sample.yaml
index 07b41e4ec..d229347ca 100644
--- a/.github/workflows/spring-data-jdbc-sample.yaml
+++ b/.github/workflows/spring-data-jdbc-sample.yaml
@@ -20,7 +20,7 @@ jobs:
spring-data-jdbc:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v5
+ - uses: actions/checkout@v6
- uses: actions/setup-java@v5
with:
distribution: temurin
diff --git a/.github/workflows/spring-data-mybatis-sample.yaml b/.github/workflows/spring-data-mybatis-sample.yaml
index 84dc6e521..f44d1388c 100644
--- a/.github/workflows/spring-data-mybatis-sample.yaml
+++ b/.github/workflows/spring-data-mybatis-sample.yaml
@@ -20,7 +20,7 @@ jobs:
spring-data-mybatis:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v5
+ - uses: actions/checkout@v6
- uses: actions/setup-java@v5
with:
distribution: temurin
diff --git a/.github/workflows/unmanaged_dependency_check.yaml b/.github/workflows/unmanaged_dependency_check.yaml
index eb282a64e..1aded2688 100644
--- a/.github/workflows/unmanaged_dependency_check.yaml
+++ b/.github/workflows/unmanaged_dependency_check.yaml
@@ -5,7 +5,7 @@ jobs:
unmanaged_dependency_check:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v5
+ - uses: actions/checkout@v6
- uses: actions/setup-java@v5
with:
distribution: temurin
@@ -14,6 +14,6 @@ jobs:
shell: bash
run: .kokoro/build.sh
- name: Unmanaged dependency check
- uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.54.1
+ uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.54.2
with:
bom-path: pom.xml
diff --git a/.kokoro/presubmit/graalvm-native-a.cfg b/.kokoro/presubmit/graalvm-native-a.cfg
index df45eaecc..38cc2a00c 100644
--- a/.kokoro/presubmit/graalvm-native-a.cfg
+++ b/.kokoro/presubmit/graalvm-native-a.cfg
@@ -3,7 +3,7 @@
# Configure the docker image for kokoro-trampoline.
env_vars: {
key: "TRAMPOLINE_IMAGE"
- value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.54.1"
+ value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.54.2"
}
env_vars: {
diff --git a/.kokoro/presubmit/graalvm-native-b.cfg b/.kokoro/presubmit/graalvm-native-b.cfg
index d110d2ae2..952e95813 100644
--- a/.kokoro/presubmit/graalvm-native-b.cfg
+++ b/.kokoro/presubmit/graalvm-native-b.cfg
@@ -3,7 +3,7 @@
# Configure the docker image for kokoro-trampoline.
env_vars: {
key: "TRAMPOLINE_IMAGE"
- value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.54.1"
+ value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.54.2"
}
env_vars: {
diff --git a/.kokoro/presubmit/graalvm-native-c.cfg b/.kokoro/presubmit/graalvm-native-c.cfg
index 8e8342be5..f673877b3 100644
--- a/.kokoro/presubmit/graalvm-native-c.cfg
+++ b/.kokoro/presubmit/graalvm-native-c.cfg
@@ -3,7 +3,7 @@
# Configure the docker image for kokoro-trampoline.
env_vars: {
key: "TRAMPOLINE_IMAGE"
- value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_c:3.54.1"
+ value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_c:3.54.2"
}
env_vars: {
diff --git a/CHANGELOG.md b/CHANGELOG.md
index ddcb0c48e..11ebcecf4 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,30 @@
# Changelog
+## [2.34.1](https://github.com/googleapis/java-spanner-jdbc/compare/v2.34.0...v2.34.1) (2025-12-16)
+
+
+### Bug Fixes
+
+* Cast double Inf and NaN to float ([#2304](https://github.com/googleapis/java-spanner-jdbc/issues/2304)) ([a947024](https://github.com/googleapis/java-spanner-jdbc/commit/a94702446aee20013157b45bf1d9c3938f0b6982)), closes [#2256](https://github.com/googleapis/java-spanner-jdbc/issues/2256)
+
+
+### Dependencies
+
+* Update actions/checkout action to v6 ([#2299](https://github.com/googleapis/java-spanner-jdbc/issues/2299)) ([fbc8969](https://github.com/googleapis/java-spanner-jdbc/commit/fbc8969d66f4687ce91268309a862a0cbe0a114c))
+* Update dependency com.google.cloud:google-cloud-spanner to v6.104.0 ([#2312](https://github.com/googleapis/java-spanner-jdbc/issues/2312)) ([930797b](https://github.com/googleapis/java-spanner-jdbc/commit/930797b71f30e458dee20679178ff3510fcba919))
+* Update dependency com.google.cloud:google-cloud-spanner to v6.105.0 ([#2325](https://github.com/googleapis/java-spanner-jdbc/issues/2325)) ([34a9768](https://github.com/googleapis/java-spanner-jdbc/commit/34a9768b203c967f4191427a815b71e1a503de8f))
+* Update dependency com.google.cloud:google-cloud-spanner-bom to v6.104.0 ([#2313](https://github.com/googleapis/java-spanner-jdbc/issues/2313)) ([5250e2d](https://github.com/googleapis/java-spanner-jdbc/commit/5250e2d069179bdeb773e5e0a1f2a5defd411811))
+* Update dependency com.google.cloud:google-cloud-spanner-bom to v6.105.0 ([#2326](https://github.com/googleapis/java-spanner-jdbc/issues/2326)) ([8f3e6b7](https://github.com/googleapis/java-spanner-jdbc/commit/8f3e6b72baccc5ae8dd5ce3c55807bc889a7f208))
+* Update dependency com.google.cloud:sdk-platform-java-config to v3.54.2 ([#2322](https://github.com/googleapis/java-spanner-jdbc/issues/2322)) ([2faffb4](https://github.com/googleapis/java-spanner-jdbc/commit/2faffb46c71e4b44b42dbc4bfd5d70a3e55eb5f6))
+* Update dependency io.opentelemetry:opentelemetry-bom to v1.57.0 ([#2316](https://github.com/googleapis/java-spanner-jdbc/issues/2316)) ([77aab00](https://github.com/googleapis/java-spanner-jdbc/commit/77aab00ec385a7bfe61615b6b250c0b97a9a9f07))
+* Update dependency net.bytebuddy:byte-buddy to v1.18.2 ([#2306](https://github.com/googleapis/java-spanner-jdbc/issues/2306)) ([ba7430c](https://github.com/googleapis/java-spanner-jdbc/commit/ba7430cd229214487dfe4db208cb274d4662bf19))
+* Update dependency net.bytebuddy:byte-buddy-agent to v1.18.2 ([#2307](https://github.com/googleapis/java-spanner-jdbc/issues/2307)) ([86dc72b](https://github.com/googleapis/java-spanner-jdbc/commit/86dc72b0e1d7199b229474008cb68400458f233e))
+* Update dependency org.springframework.boot:spring-boot to v4 ([#2300](https://github.com/googleapis/java-spanner-jdbc/issues/2300)) ([a6dddf2](https://github.com/googleapis/java-spanner-jdbc/commit/a6dddf2aef2e9d35ec2bf26ea1a1586ab65e122a))
+* Update dependency org.springframework.boot:spring-boot-starter-data-jdbc to v4 ([#2301](https://github.com/googleapis/java-spanner-jdbc/issues/2301)) ([92efa98](https://github.com/googleapis/java-spanner-jdbc/commit/92efa986a0880524a3d19685df0e08cf7815a69a))
+* Update dependency org.springframework.boot:spring-boot-starter-parent to v3.5.8 ([#2298](https://github.com/googleapis/java-spanner-jdbc/issues/2298)) ([5603846](https://github.com/googleapis/java-spanner-jdbc/commit/5603846fc004a0e31cbcf10bc246d477cd80d9dd))
+* Update dependency org.testcontainers:testcontainers to v2.0.3 ([#2323](https://github.com/googleapis/java-spanner-jdbc/issues/2323)) ([65302d4](https://github.com/googleapis/java-spanner-jdbc/commit/65302d44315548af3406853121e341523c89521c))
+* Update dependency org.testcontainers:testcontainers-bom to v2.0.3 ([#2324](https://github.com/googleapis/java-spanner-jdbc/issues/2324)) ([8e8b3a0](https://github.com/googleapis/java-spanner-jdbc/commit/8e8b3a0b4c613324a07609fa142330322e8eab95))
+
## [2.34.0](https://github.com/googleapis/java-spanner-jdbc/compare/v2.33.3...v2.34.0) (2025-11-18)
diff --git a/README.md b/README.md
index c43a63e3e..c8b59f1ef 100644
--- a/README.md
+++ b/README.md
@@ -20,7 +20,7 @@ If you are using Maven, add this to your pom.xml file:
com.google.cloud
google-cloud-spanner-jdbc
- 2.34.0
+ 2.34.1
```
@@ -30,7 +30,7 @@ If you are using Gradle without BOM, add this to your dependencies
```Groovy
-implementation 'com.google.cloud:google-cloud-spanner-jdbc:2.34.0'
+implementation 'com.google.cloud:google-cloud-spanner-jdbc:2.34.1'
```
@@ -38,7 +38,7 @@ If you are using SBT, add this to your dependencies
```Scala
-libraryDependencies += "com.google.cloud" % "google-cloud-spanner-jdbc" % "2.34.0"
+libraryDependencies += "com.google.cloud" % "google-cloud-spanner-jdbc" % "2.34.1"
```
diff --git a/pom.xml b/pom.xml
index 6495c5601..f12633460 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0
google-cloud-spanner-jdbc
- 2.34.0
+ 2.34.1
jar
Google Cloud Spanner JDBC
https://github.com/googleapis/java-spanner-jdbc
@@ -14,7 +14,7 @@
com.google.cloud
sdk-platform-java-config
- 3.54.1
+ 3.54.2
@@ -61,10 +61,15 @@
com.google.cloud
google-cloud-spanner-bom
- 6.103.0
+ 6.105.0
pom
import
+
+ com.google.cloud
+ grpc-gcp
+ 1.9.0
+
com.google.cloud
google-cloud-shared-dependencies
@@ -166,7 +171,7 @@
org.testcontainers
testcontainers
- 2.0.2
+ 2.0.3
test
diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml
index 8fb4480bb..1d139b2cf 100644
--- a/samples/install-without-bom/pom.xml
+++ b/samples/install-without-bom/pom.xml
@@ -29,7 +29,7 @@
com.google.cloud
google-cloud-spanner-jdbc
- 2.33.3
+ 2.34.0
diff --git a/samples/quickperf/pom.xml b/samples/quickperf/pom.xml
index 52b73e145..3618b6461 100644
--- a/samples/quickperf/pom.xml
+++ b/samples/quickperf/pom.xml
@@ -12,7 +12,7 @@
com.google.cloud
sdk-platform-java-config
- 3.54.1
+ 3.54.2
@@ -27,7 +27,7 @@
com.google.cloud
libraries-bom
- 26.71.0
+ 26.72.0
pom
import
@@ -73,13 +73,13 @@
org.testcontainers
testcontainers
- 2.0.2
+ 2.0.3
test
org.springframework.boot
spring-boot
- 3.5.7
+ 4.0.0
test
diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml
index 0eaafc475..14bd31d70 100644
--- a/samples/snapshot/pom.xml
+++ b/samples/snapshot/pom.xml
@@ -29,7 +29,7 @@
com.google.cloud
google-cloud-spanner-jdbc
- 2.34.0
+ 2.34.1
diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml
index 75648f01a..12b2c88c8 100644
--- a/samples/snippets/pom.xml
+++ b/samples/snippets/pom.xml
@@ -9,7 +9,7 @@
com.google.cloud
sdk-platform-java-config
- 3.54.1
+ 3.54.2
@@ -26,7 +26,7 @@
com.google.cloud
libraries-bom
- 26.71.0
+ 26.72.0
pom
import
@@ -54,7 +54,7 @@
org.testcontainers
testcontainers
- 2.0.2
+ 2.0.3
test
diff --git a/samples/spring-data-jdbc/googlesql/pom.xml b/samples/spring-data-jdbc/googlesql/pom.xml
index 22d113825..a8c714ad5 100644
--- a/samples/spring-data-jdbc/googlesql/pom.xml
+++ b/samples/spring-data-jdbc/googlesql/pom.xml
@@ -30,21 +30,26 @@
com.google.cloud
google-cloud-spanner-bom
- 6.103.0
+ 6.105.0
import
pom
+
+ com.google.cloud
+ grpc-gcp
+ 1.9.0
+
com.google.cloud
libraries-bom
- 26.71.0
+ 26.72.0
import
pom
io.opentelemetry
opentelemetry-bom
- 1.56.0
+ 1.57.0
pom
import
@@ -55,7 +60,7 @@
org.springframework.boot
spring-boot-starter-data-jdbc
- 3.5.7
+ 4.0.0
@@ -90,7 +95,7 @@
org.testcontainers
testcontainers
- 2.0.2
+ 2.0.3
diff --git a/samples/spring-data-jdbc/postgresql/pom.xml b/samples/spring-data-jdbc/postgresql/pom.xml
index b4256a038..bc60ad011 100644
--- a/samples/spring-data-jdbc/postgresql/pom.xml
+++ b/samples/spring-data-jdbc/postgresql/pom.xml
@@ -30,21 +30,26 @@
com.google.cloud
google-cloud-spanner-bom
- 6.103.0
+ 6.105.0
import
pom
+
+ com.google.cloud
+ grpc-gcp
+ 1.9.0
+
com.google.cloud
libraries-bom
- 26.71.0
+ 26.72.0
import
pom
io.opentelemetry
opentelemetry-bom
- 1.56.0
+ 1.57.0
pom
import
@@ -55,7 +60,7 @@
org.springframework.boot
spring-boot-starter-data-jdbc
- 3.5.7
+ 4.0.0
@@ -114,13 +119,13 @@
net.bytebuddy
byte-buddy
- 1.18.1
+ 1.18.2
test
net.bytebuddy
byte-buddy-agent
- 1.18.1
+ 1.18.2
test
@@ -132,7 +137,7 @@
org.testcontainers
testcontainers
- 2.0.2
+ 2.0.3
test
diff --git a/samples/spring-data-jdbc/postgresql/src/main/java/com/google/cloud/spanner/sample/OpenTelemetryConfiguration.java b/samples/spring-data-jdbc/postgresql/src/main/java/com/google/cloud/spanner/sample/OpenTelemetryConfiguration.java
index f1e615290..b833e48b7 100644
--- a/samples/spring-data-jdbc/postgresql/src/main/java/com/google/cloud/spanner/sample/OpenTelemetryConfiguration.java
+++ b/samples/spring-data-jdbc/postgresql/src/main/java/com/google/cloud/spanner/sample/OpenTelemetryConfiguration.java
@@ -36,8 +36,6 @@
import java.io.IOException;
import java.util.concurrent.ThreadLocalRandom;
import org.springframework.beans.factory.annotation.Value;
-import org.springframework.boot.autoconfigure.AutoConfiguration;
-import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
diff --git a/samples/spring-data-mybatis/googlesql/pom.xml b/samples/spring-data-mybatis/googlesql/pom.xml
index d48edf9ef..8bd42c99c 100644
--- a/samples/spring-data-mybatis/googlesql/pom.xml
+++ b/samples/spring-data-mybatis/googlesql/pom.xml
@@ -13,7 +13,7 @@
org.springframework.boot
spring-boot-starter-parent
- 3.5.7
+ 3.5.8
@@ -35,21 +35,26 @@
com.google.cloud
google-cloud-spanner-bom
- 6.103.0
+ 6.105.0
import
pom
+
+ com.google.cloud
+ grpc-gcp
+ 1.9.0
+
com.google.cloud
libraries-bom
- 26.71.0
+ 26.72.0
import
pom
org.testcontainers
testcontainers-bom
- 2.0.2
+ 2.0.3
import
pom
@@ -94,7 +99,7 @@
com.google.cloud
google-cloud-spanner
- 6.103.0
+ 6.105.0
test-jar
test
@@ -108,13 +113,13 @@
net.bytebuddy
byte-buddy
- 1.18.1
+ 1.18.2
test
net.bytebuddy
byte-buddy-agent
- 1.18.1
+ 1.18.2
test
diff --git a/samples/spring-data-mybatis/postgresql/pom.xml b/samples/spring-data-mybatis/postgresql/pom.xml
index 2d50c8eb4..96cec67c1 100644
--- a/samples/spring-data-mybatis/postgresql/pom.xml
+++ b/samples/spring-data-mybatis/postgresql/pom.xml
@@ -13,7 +13,7 @@
org.springframework.boot
spring-boot-starter-parent
- 3.5.7
+ 3.5.8
@@ -35,14 +35,14 @@
com.google.cloud
libraries-bom
- 26.71.0
+ 26.72.0
import
pom
org.testcontainers
testcontainers-bom
- 2.0.2
+ 2.0.3
import
pom
@@ -105,13 +105,13 @@
net.bytebuddy
byte-buddy
- 1.18.1
+ 1.18.2
test
net.bytebuddy
byte-buddy-agent
- 1.18.1
+ 1.18.2
test
diff --git a/src/main/java/com/google/cloud/spanner/jdbc/AbstractJdbcWrapper.java b/src/main/java/com/google/cloud/spanner/jdbc/AbstractJdbcWrapper.java
index cd66cb38c..022a9a5da 100644
--- a/src/main/java/com/google/cloud/spanner/jdbc/AbstractJdbcWrapper.java
+++ b/src/main/java/com/google/cloud/spanner/jdbc/AbstractJdbcWrapper.java
@@ -291,7 +291,7 @@ static int checkedCastToInt(BigInteger val) throws SQLException {
/** Cast value and throw {@link SQLException} if out-of-range. */
static float checkedCastToFloat(double val) throws SQLException {
- if (val > Float.MAX_VALUE || val < -Float.MAX_VALUE) {
+ if (Double.isFinite(val) && (val > Float.MAX_VALUE || val < -Float.MAX_VALUE)) {
throw JdbcSqlExceptionFactory.of(
String.format(OUT_OF_RANGE_MSG, "float", val), com.google.rpc.Code.OUT_OF_RANGE);
}
diff --git a/src/test/java/com/google/cloud/spanner/jdbc/AbstractJdbcWrapperTest.java b/src/test/java/com/google/cloud/spanner/jdbc/AbstractJdbcWrapperTest.java
index f8473f638..702477f45 100644
--- a/src/test/java/com/google/cloud/spanner/jdbc/AbstractJdbcWrapperTest.java
+++ b/src/test/java/com/google/cloud/spanner/jdbc/AbstractJdbcWrapperTest.java
@@ -256,7 +256,7 @@ public void testCheckedCastFromBigIntegerToLong() {
}
@Test
- public void testCheckedCastToFloat() {
+ public void testCheckedCastToFloat() throws SQLException {
final CheckedCastChecker checker =
new CheckedCastChecker<>(AbstractJdbcWrapper::checkedCastToFloat);
assertThat(checker.cast(0D)).isTrue();
@@ -268,6 +268,16 @@ public void testCheckedCastToFloat() {
assertThat(checker.cast((double) Float.MIN_VALUE)).isTrue();
assertThat(checker.cast(-Float.MAX_VALUE * 2d)).isFalse();
assertThat(checker.cast(-Double.MAX_VALUE)).isFalse();
+
+ assertEquals(
+ Float.POSITIVE_INFINITY,
+ AbstractJdbcWrapper.checkedCastToFloat(Double.POSITIVE_INFINITY),
+ 0.0d);
+ assertEquals(
+ Float.NEGATIVE_INFINITY,
+ AbstractJdbcWrapper.checkedCastToFloat(Double.NEGATIVE_INFINITY),
+ 0.0d);
+ assertEquals(Float.NaN, AbstractJdbcWrapper.checkedCastToFloat(Double.NaN), 0.0d);
}
@Test
diff --git a/versions.txt b/versions.txt
index 5bc601e20..f3b324ac5 100644
--- a/versions.txt
+++ b/versions.txt
@@ -1,4 +1,4 @@
# Format:
# module:released-version:current-version
-google-cloud-spanner-jdbc:2.34.0:2.34.0
+google-cloud-spanner-jdbc:2.34.1:2.34.1