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