From 068efb8353644e1e2b58d5a4f19e94b632670a92 Mon Sep 17 00:00:00 2001 From: Lawrence Qiu Date: Wed, 3 Jun 2026 18:18:59 +0000 Subject: [PATCH 01/18] ci: add JDK 26 testing support Add JDK 26 to build matrices in GitHub Actions workflows. Update Bazel integration tests in sdk-platform-java to run on JDK 25 and 26 with Security Manager override. BUG=b/481669998 TAG=agy CONV=7b193e4d-38f8-450c-8475-0b9ae0d04507 --- .github/workflows/ci.yaml | 4 ++-- .github/workflows/google-auth-library-java-ci.yaml | 2 +- .github/workflows/java-bigquery-jdbc-ci.yaml | 2 +- .github/workflows/java-bigtable-ci.yaml | 2 +- .github/workflows/java-firestore-ci.yaml | 2 +- .github/workflows/java-pubsub-ci.yaml | 2 +- .github/workflows/java-spanner-jdbc-ci.yaml | 2 +- .github/workflows/java-storage-nio-ci.yaml | 2 +- .github/workflows/sdk-platform-java-ci.yaml | 13 +++++++++---- .github/workflows/showcase.yaml | 2 +- 10 files changed, 19 insertions(+), 14 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 0427c3e876a5..e50686c059fa 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -59,7 +59,7 @@ jobs: strategy: fail-fast: false matrix: - java: [11, 17, 21, 25] + java: [11, 17, 21, 25, 26] steps: - name: Get current week within the year id: date @@ -226,7 +226,7 @@ jobs: fail-fast: false matrix: package: ${{ fromJSON(needs.changes.outputs.packages) }} - java: [11, 17, 21, 25] + java: [11, 17, 21, 25, 26] steps: - name: Get current week within the year id: date diff --git a/.github/workflows/google-auth-library-java-ci.yaml b/.github/workflows/google-auth-library-java-ci.yaml index 21373cd62925..e12979f75787 100644 --- a/.github/workflows/google-auth-library-java-ci.yaml +++ b/.github/workflows/google-auth-library-java-ci.yaml @@ -42,7 +42,7 @@ jobs: strategy: fail-fast: false matrix: - java: [11, 17, 21, 25] + java: [11, 17, 21, 25, 26] steps: - uses: actions/checkout@v4 - uses: actions/setup-java@v4 diff --git a/.github/workflows/java-bigquery-jdbc-ci.yaml b/.github/workflows/java-bigquery-jdbc-ci.yaml index 2883253a7529..a2d49580d537 100644 --- a/.github/workflows/java-bigquery-jdbc-ci.yaml +++ b/.github/workflows/java-bigquery-jdbc-ci.yaml @@ -49,7 +49,7 @@ jobs: strategy: fail-fast: false matrix: - java: [11, 17, 21, 25] + java: [11, 17, 21, 25, 26] steps: - uses: actions/checkout@v4 - uses: actions/setup-java@v4 diff --git a/.github/workflows/java-bigtable-ci.yaml b/.github/workflows/java-bigtable-ci.yaml index c0328b1435ce..b935cf9eed1b 100644 --- a/.github/workflows/java-bigtable-ci.yaml +++ b/.github/workflows/java-bigtable-ci.yaml @@ -41,7 +41,7 @@ jobs: strategy: fail-fast: false matrix: - java: [11, 17, 21, 25] + java: [11, 17, 21, 25, 26] steps: - uses: actions/checkout@v4 - uses: actions/setup-java@v4 diff --git a/.github/workflows/java-firestore-ci.yaml b/.github/workflows/java-firestore-ci.yaml index 3118df474f58..f4fac240ee4e 100644 --- a/.github/workflows/java-firestore-ci.yaml +++ b/.github/workflows/java-firestore-ci.yaml @@ -41,7 +41,7 @@ jobs: strategy: fail-fast: false matrix: - java: [11, 17, 21, 25] + java: [11, 17, 21, 25, 26] steps: - uses: actions/checkout@v4 - uses: actions/setup-java@v4 diff --git a/.github/workflows/java-pubsub-ci.yaml b/.github/workflows/java-pubsub-ci.yaml index c4723c36b6f0..f0e9d4f05b80 100644 --- a/.github/workflows/java-pubsub-ci.yaml +++ b/.github/workflows/java-pubsub-ci.yaml @@ -41,7 +41,7 @@ jobs: strategy: fail-fast: false matrix: - java: [11, 17, 21, 25] + java: [11, 17, 21, 25, 26] steps: - uses: actions/checkout@v4 - uses: actions/setup-java@v4 diff --git a/.github/workflows/java-spanner-jdbc-ci.yaml b/.github/workflows/java-spanner-jdbc-ci.yaml index 4cbb5184193a..f3da655c477b 100644 --- a/.github/workflows/java-spanner-jdbc-ci.yaml +++ b/.github/workflows/java-spanner-jdbc-ci.yaml @@ -47,7 +47,7 @@ jobs: strategy: fail-fast: false matrix: - java: [11, 17, 21, 25] + java: [11, 17, 21, 25, 26] steps: - uses: actions/checkout@v4 - uses: actions/setup-java@v4 diff --git a/.github/workflows/java-storage-nio-ci.yaml b/.github/workflows/java-storage-nio-ci.yaml index efddd8ac27fd..c7be8db2a222 100644 --- a/.github/workflows/java-storage-nio-ci.yaml +++ b/.github/workflows/java-storage-nio-ci.yaml @@ -47,7 +47,7 @@ jobs: strategy: fail-fast: false matrix: - java: [11, 17, 21, 25] + java: [11, 17, 21, 25, 26] steps: - uses: actions/checkout@v4 - uses: actions/setup-java@v4 diff --git a/.github/workflows/sdk-platform-java-ci.yaml b/.github/workflows/sdk-platform-java-ci.yaml index 2ec5c3b86c9c..8d4e0f306f2d 100644 --- a/.github/workflows/sdk-platform-java-ci.yaml +++ b/.github/workflows/sdk-platform-java-ci.yaml @@ -26,7 +26,7 @@ jobs: name: sdk-platform-java units strategy: matrix: - java: [ 11, 17, 21, 25 ] + java: [ 11, 17, 21, 25, 26 ] steps: - uses: actions/checkout@v4 - uses: actions/setup-java@v4 @@ -164,16 +164,21 @@ jobs: run: | bazelisk --batch test //sdk-platform-java/test/integration/... --test_output=errors - bazel-25: + # JDK 24+ permanently disables Security Manager. Bazel's default test runner tries to install it. + # We must explicitly disable this behavior using shouldInstallTestSecurityManager=false. + bazel-no-security-manager-jdk24-plus: needs: filter if: ${{ needs.filter.outputs.library == 'true' }} runs-on: ubuntu-22.04 - name: sdk-platform-java integration (25) + name: sdk-platform-java integration (JDK 24+) + strategy: + matrix: + java: [ 25, 26 ] steps: - uses: actions/checkout@v4 - uses: actions/setup-java@v4 with: - java-version: 25 + java-version: ${{ matrix.java }} distribution: temurin cache: maven - run: bazelisk version diff --git a/.github/workflows/showcase.yaml b/.github/workflows/showcase.yaml index 6548576f0ca3..bb9901619966 100644 --- a/.github/workflows/showcase.yaml +++ b/.github/workflows/showcase.yaml @@ -101,7 +101,7 @@ jobs: runs-on: ubuntu-22.04 strategy: matrix: - java: [ 11, 17, 21, 25 ] + java: [ 11, 17, 21, 25, 26 ] steps: - uses: actions/checkout@v4 - uses: actions/setup-java@v4 From fb234af94044b0f0a39fc9eb43de0fa075d2f9db Mon Sep 17 00:00:00 2001 From: Lawrence Qiu Date: Wed, 3 Jun 2026 23:00:53 +0000 Subject: [PATCH 02/18] build: bump Error Prone to 2.45.0 for Bigtable and Datastore Bump Error Prone version to 2.45.0 to support compilation on JDK 26. This resolves compilation failures due to internal javac API changes in JDK 26. BUG=b/481669998 TAG=agy CONV=7b193e4d-38f8-450c-8475-0b9ae0d04507 --- java-bigtable/pom.xml | 2 +- java-datastore/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/java-bigtable/pom.xml b/java-bigtable/pom.xml index d0fe7683abdf..1c8b13b48a6d 100644 --- a/java-bigtable/pom.xml +++ b/java-bigtable/pom.xml @@ -146,7 +146,7 @@ https://googleapis.dev/java/google-api-grpc/latest - 2.38.0 + 2.45.0 diff --git a/java-datastore/pom.xml b/java-datastore/pom.xml index 2e4889d4519e..86958e015f06 100644 --- a/java-datastore/pom.xml +++ b/java-datastore/pom.xml @@ -147,7 +147,7 @@ - 2.42.0 + 2.45.0 From 6cc85058ed31cf1e2d8f236a7bb5be7af5f393d2 Mon Sep 17 00:00:00 2001 From: Lawrence Qiu Date: Thu, 4 Jun 2026 01:12:37 +0000 Subject: [PATCH 03/18] build: inherit Error Prone version from pom-parent Define error-prone.version as 2.48.0 in google-cloud-pom-parent, matching the version in gapic-generator-java-pom-parent. Remove local overrides from java-bigtable and java-datastore so they inherit the version from the parent. BUG=b/481669998 TAG=agy CONV=7b193e4d-38f8-450c-8475-0b9ae0d04507 --- google-cloud-pom-parent/pom.xml | 1 + java-bigtable/pom.xml | 2 -- java-datastore/pom.xml | 2 -- 3 files changed, 1 insertion(+), 4 deletions(-) diff --git a/google-cloud-pom-parent/pom.xml b/google-cloud-pom-parent/pom.xml index 19e138dab615..226a3c8ad3d6 100644 --- a/google-cloud-pom-parent/pom.xml +++ b/google-cloud-pom-parent/pom.xml @@ -22,6 +22,7 @@ false java.header + 2.48.0 diff --git a/java-bigtable/pom.xml b/java-bigtable/pom.xml index 1c8b13b48a6d..551958703180 100644 --- a/java-bigtable/pom.xml +++ b/java-bigtable/pom.xml @@ -145,8 +145,6 @@ google-cloud-bigtable-parent https://googleapis.dev/java/google-api-grpc/latest - - 2.45.0 diff --git a/java-datastore/pom.xml b/java-datastore/pom.xml index 86958e015f06..1e0dcf099145 100644 --- a/java-datastore/pom.xml +++ b/java-datastore/pom.xml @@ -146,8 +146,6 @@ https://googleapis.dev/java/google-api-grpc/latest - - 2.45.0 From 21c9ee00b9e7e3bc787e6ade206a4b7671ec7ae9 Mon Sep 17 00:00:00 2001 From: Lawrence Qiu Date: Thu, 4 Jun 2026 01:40:38 +0000 Subject: [PATCH 04/18] build(config): update Error Prone references in Bigtable and Datastore Update Error Prone references in java-bigtable and java-datastore to use the version and arguments defined in google-cloud-pom-parent. This resolves compilation issues on JDK 26 while maintaining compatibility with older JDK versions via profiles in the parent POM. BUG=b/481669998 TAG=agy CONV=7b193e4d-38f8-450c-8475-0b9ae0d04507 --- google-cloud-pom-parent/pom.xml | 23 ++++++++++++++++++- java-bigtable/google-cloud-bigtable/pom.xml | 3 ++- .../datastore-v1-proto-client/pom.xml | 3 ++- .../google-cloud-datastore-utils/pom.xml | 3 ++- java-datastore/google-cloud-datastore/pom.xml | 3 ++- 5 files changed, 30 insertions(+), 5 deletions(-) diff --git a/google-cloud-pom-parent/pom.xml b/google-cloud-pom-parent/pom.xml index 226a3c8ad3d6..e8fc907216d6 100644 --- a/google-cloud-pom-parent/pom.xml +++ b/google-cloud-pom-parent/pom.xml @@ -22,7 +22,8 @@ false java.header - 2.48.0 + 2.48.0 + -XDaddTypeAnnotationsToSymbol=true @@ -130,6 +131,26 @@ + + jdk-old + + [1.8,17) + + + 2.38.0 + -g + + + + jdk-mid + + [17,21) + + + 2.42.0 + -g + + diff --git a/java-bigtable/google-cloud-bigtable/pom.xml b/java-bigtable/google-cloud-bigtable/pom.xml index 77308d29c87e..cc2ac2d0ea30 100644 --- a/java-bigtable/google-cloud-bigtable/pom.xml +++ b/java-bigtable/google-cloud-bigtable/pom.xml @@ -441,6 +441,7 @@ -XDcompilePolicy=simple --should-stop=ifError=FLOW -Xplugin:ErrorProne -XepDisableWarningsInGeneratedCode -Xep:MissingSummary:OFF -Xep:InlineMeSuggester:OFF -Xep:AutoValueImmutableFields:OFF -Xep:ObjectEqualsForPrimitives:OFF -Xep:JavaDurationGetSecondsToToSeconds:OFF + ${errorprone.javac.args} -J--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED -J--add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED @@ -457,7 +458,7 @@ com.google.errorprone error_prone_core - ${error-prone.version} + ${errorprone.version} diff --git a/java-datastore/datastore-v1-proto-client/pom.xml b/java-datastore/datastore-v1-proto-client/pom.xml index 3bea6a35fec2..4de8accacc3f 100644 --- a/java-datastore/datastore-v1-proto-client/pom.xml +++ b/java-datastore/datastore-v1-proto-client/pom.xml @@ -146,6 +146,7 @@ -XDcompilePolicy=simple --should-stop=ifError=FLOW -Xplugin:ErrorProne -XepExcludedPaths:.*/generated-sources/.* + ${errorprone.javac.args} -J--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED -J--add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED @@ -163,7 +164,7 @@ com.google.errorprone error_prone_core - ${error-prone.version} + ${errorprone.version} diff --git a/java-datastore/google-cloud-datastore-utils/pom.xml b/java-datastore/google-cloud-datastore-utils/pom.xml index b0533059163a..dff5f9750d59 100644 --- a/java-datastore/google-cloud-datastore-utils/pom.xml +++ b/java-datastore/google-cloud-datastore-utils/pom.xml @@ -123,6 +123,7 @@ -XDcompilePolicy=simple --should-stop=ifError=FLOW -Xplugin:ErrorProne -XepExcludedPaths:.*/generated-sources/.* + ${errorprone.javac.args} -J--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED -J--add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED @@ -140,7 +141,7 @@ com.google.errorprone error_prone_core - ${error-prone.version} + ${errorprone.version} diff --git a/java-datastore/google-cloud-datastore/pom.xml b/java-datastore/google-cloud-datastore/pom.xml index d6c2acdfc05c..54a09e2ac8ad 100644 --- a/java-datastore/google-cloud-datastore/pom.xml +++ b/java-datastore/google-cloud-datastore/pom.xml @@ -291,6 +291,7 @@ -XDcompilePolicy=simple --should-stop=ifError=FLOW -Xplugin:ErrorProne -XepExcludedPaths:.*/generated-sources/.* + ${errorprone.javac.args} -J--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED -J--add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED @@ -308,7 +309,7 @@ com.google.errorprone error_prone_core - ${error-prone.version} + ${errorprone.version} From 695a7beec713f7be4281e632387b8cfcf40b106d Mon Sep 17 00:00:00 2001 From: Lawrence Qiu Date: Thu, 4 Jun 2026 02:10:43 +0000 Subject: [PATCH 05/18] fix: resolve NullArgumentForNonNullParameter Error Prone errors Fix compilation errors triggered by the new Error Prone version. - Update DatastoreHelper to avoid Iterators.getNext(..., null). - Update Bigtable tests to use isNull() instead of isEqualTo(null). - Update Bigtable tests to use lambda instead of Suppliers.ofInstance(null). - Suppress NullArgumentForNonNullParameter for SettableFuture set(null) calls. - Rewrite VRpcResultSubject to avoid passing null to Truth's that() directly. BUG=b/481669998 TAG=agy CONV=7b193e4d-38f8-450c-8475-0b9ae0d04507 --- .../bigtable/admin/v2/models/ClusterTest.java | 2 +- .../v2/internal/csm/attributes/EnvInfoTest.java | 2 +- .../internal/csm/opencensus/MetricsTracerTest.java | 2 +- .../internal/test_helpers/VRpcResultSubject.java | 14 +++++++------- .../v2/stub/EnhancedBigtableStubCloseTest.java | 2 ++ .../data/v2/stub/EnhancedBigtableStubTest.java | 4 ++-- .../reframing/ReframingResponseObserverTest.java | 2 +- .../google/cloud/datastore/DatastoreHelper.java | 7 ++++--- 8 files changed, 19 insertions(+), 16 deletions(-) diff --git a/java-bigtable/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/admin/v2/models/ClusterTest.java b/java-bigtable/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/admin/v2/models/ClusterTest.java index f2f217ab56b5..f7c7bb43cb46 100644 --- a/java-bigtable/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/admin/v2/models/ClusterTest.java +++ b/java-bigtable/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/admin/v2/models/ClusterTest.java @@ -47,7 +47,7 @@ public void testFromProto() { assertThat(result.getState()).isEqualTo(Cluster.State.READY); assertThat(result.getServeNodes()).isEqualTo(30); assertThat(result.getStorageType()).isEqualTo(StorageType.SSD); - assertThat(result.getKmsKeyName()).isEqualTo(null); + assertThat(result.getKmsKeyName()).isNull(); } @Test diff --git a/java-bigtable/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/internal/csm/attributes/EnvInfoTest.java b/java-bigtable/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/internal/csm/attributes/EnvInfoTest.java index 55df4aee7f82..b31570e60839 100644 --- a/java-bigtable/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/internal/csm/attributes/EnvInfoTest.java +++ b/java-bigtable/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/internal/csm/attributes/EnvInfoTest.java @@ -33,7 +33,7 @@ @ExtendWith(MockitoExtension.class) class EnvInfoTest { - private static final Supplier NULL_HOST = Suppliers.ofInstance(null); + private static final Supplier NULL_HOST = () -> null; @SuppressWarnings("UnnecessaryLambda") private static final Function NULL_ENV = (ignored) -> null; diff --git a/java-bigtable/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/internal/csm/opencensus/MetricsTracerTest.java b/java-bigtable/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/internal/csm/opencensus/MetricsTracerTest.java index 4472c433f713..e31e58d66423 100644 --- a/java-bigtable/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/internal/csm/opencensus/MetricsTracerTest.java +++ b/java-bigtable/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/internal/csm/opencensus/MetricsTracerTest.java @@ -218,7 +218,7 @@ public void testReadRowsOpCount() throws InterruptedException { } @Test - @SuppressWarnings("FutureReturnValueIgnored") + @SuppressWarnings({"FutureReturnValueIgnored", "NullArgumentForNonNullParameter"}) public void testReadRowsFirstRow() throws InterruptedException { final long beforeSleep = 50; final long afterSleep = 50; diff --git a/java-bigtable/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/internal/test_helpers/VRpcResultSubject.java b/java-bigtable/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/internal/test_helpers/VRpcResultSubject.java index 28b741e09548..c84b6d5b4f67 100644 --- a/java-bigtable/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/internal/test_helpers/VRpcResultSubject.java +++ b/java-bigtable/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/internal/test_helpers/VRpcResultSubject.java @@ -23,7 +23,6 @@ import com.google.common.truth.Subject; import com.google.rpc.RetryInfo; import java.time.Duration; -import java.util.Optional; import javax.annotation.Nullable; public final class VRpcResultSubject extends Subject { @@ -47,12 +46,13 @@ public void hasRetryInfo() { } public ComparableSubject retryInfoDelay() { - return check("retryInfo.delay") - .that( - Optional.ofNullable(actual.getRetryInfo()) - .map(RetryInfo::getRetryDelay) - .map(d -> Duration.ofSeconds(d.getSeconds()).plus(Duration.ofNanos(d.getNanos()))) - .orElse(null)); + RetryInfo retryInfo = actual.getRetryInfo(); + Duration delay = null; + if (retryInfo != null) { + com.google.protobuf.Duration d = retryInfo.getRetryDelay(); + delay = Duration.ofSeconds(d.getSeconds()).plus(Duration.ofNanos(d.getNanos())); + } + return check("retryInfo.delay").that(delay); } public ComparableSubject backendLatency() { diff --git a/java-bigtable/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubCloseTest.java b/java-bigtable/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubCloseTest.java index 74d05e37fea2..5ab809f31b41 100644 --- a/java-bigtable/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubCloseTest.java +++ b/java-bigtable/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubCloseTest.java @@ -81,6 +81,7 @@ public void tearDown() throws Exception { } @Test + @SuppressWarnings("NullArgumentForNonNullParameter") public void outstandingRequestsFinishAfterClose() throws Exception { ApiFuture> resultFuture = stub.readRowsCallable().all().futureCall(Query.create(TableId.of("table1"))); @@ -99,6 +100,7 @@ public void outstandingRequestsFinishAfterClose() throws Exception { class FakeBigtable extends BigtableGrpc.BigtableImplBase { @Override + @SuppressWarnings("NullArgumentForNonNullParameter") public void readRows( ReadRowsRequest request, StreamObserver responseObserver) { diff --git a/java-bigtable/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubTest.java b/java-bigtable/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubTest.java index a21eb3d707be..c594ce86091c 100644 --- a/java-bigtable/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubTest.java +++ b/java-bigtable/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubTest.java @@ -385,7 +385,7 @@ public void testMutateRowRequestResponseConversion() MutateRowRequest protoReq = fakeDataService.mutateRowRequests.poll(1, TimeUnit.SECONDS); assertThat(protoReq) .isEqualTo(req.toProto(RequestContext.create(PROJECT_ID, INSTANCE_ID, APP_PROFILE_ID))); - assertThat(f.get()).isEqualTo(null); + assertThat(f.get()).isNull(); } @Test @@ -407,7 +407,7 @@ public void testMutateRowRequestParams() throws ExecutionException, InterruptedE // StatsHeadersUnaryCallable assertThat(reqMetadata.keys()).contains("bigtable-client-attempt-epoch-usec"); - assertThat(f.get()).isEqualTo(null); + assertThat(f.get()).isNull(); } @Test diff --git a/java-bigtable/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/gaxx/reframing/ReframingResponseObserverTest.java b/java-bigtable/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/gaxx/reframing/ReframingResponseObserverTest.java index 6adc71cae0c0..576dd919448b 100644 --- a/java-bigtable/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/gaxx/reframing/ReframingResponseObserverTest.java +++ b/java-bigtable/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/gaxx/reframing/ReframingResponseObserverTest.java @@ -185,7 +185,7 @@ public void testManyToOne() throws InterruptedException { // First downstream request makes the upstream over produce outerObserver.getController().request(1); Truth.assertThat(outerObserver.popNextResponse()).isEqualTo("a"); - Truth.assertThat(outerObserver.popNextResponse()).isEqualTo(null); + Truth.assertThat(outerObserver.popNextResponse()).isNull(); Truth.assertThat(outerObserver.isDone()).isFalse(); // Next downstream request should fetch from buffer diff --git a/java-datastore/google-cloud-datastore/src/main/java/com/google/cloud/datastore/DatastoreHelper.java b/java-datastore/google-cloud-datastore/src/main/java/com/google/cloud/datastore/DatastoreHelper.java index 33e90a66e802..7c0d73f0f8df 100644 --- a/java-datastore/google-cloud-datastore/src/main/java/com/google/cloud/datastore/DatastoreHelper.java +++ b/java-datastore/google-cloud-datastore/src/main/java/com/google/cloud/datastore/DatastoreHelper.java @@ -16,7 +16,6 @@ package com.google.cloud.datastore; -import com.google.common.collect.Iterators; import com.google.common.collect.Maps; import java.util.ArrayList; import java.util.Arrays; @@ -38,11 +37,13 @@ static Key allocateId(Datastore service, IncompleteKey key) { } static Entity get(Transaction reader, Key key) { - return Iterators.getNext(reader.get(new Key[] {key}), null); + Iterator limit = reader.get(new Key[] {key}); + return limit.hasNext() ? limit.next() : null; } static Entity get(Datastore reader, Key key, ReadOption... options) { - return Iterators.getNext(reader.get(Collections.singletonList(key), options), null); + Iterator limit = reader.get(Collections.singletonList(key), options); + return limit.hasNext() ? limit.next() : null; } static Entity add(DatastoreWriter writer, FullEntity entity) { From f84d9fed5cc9dd365e37056edcfca7c9963a8998 Mon Sep 17 00:00:00 2001 From: Lawrence Qiu Date: Thu, 4 Jun 2026 02:20:43 +0000 Subject: [PATCH 06/18] refactor(config): clarify POM profiles and fix test formatting - Rename profiles in google-cloud-pom-parent for clarity: - jdk-old -> errorprone-jdk11 - jdk-mid -> errorprone-jdk17 - Add comments explaining Error Prone downgrades and compiler flags. - Reformat EnvInfoTest.java to comply with style guide. BUG=b/481669998 TAG=agy CONV=7b193e4d-38f8-450c-8475-0b9ae0d04507 --- google-cloud-pom-parent/pom.xml | 14 ++++++++++++-- .../v2/internal/csm/attributes/EnvInfoTest.java | 1 - 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/google-cloud-pom-parent/pom.xml b/google-cloud-pom-parent/pom.xml index e8fc907216d6..c1e2011e202e 100644 --- a/google-cloud-pom-parent/pom.xml +++ b/google-cloud-pom-parent/pom.xml @@ -23,6 +23,8 @@ false java.header 2.48.0 + -XDaddTypeAnnotationsToSymbol=true @@ -132,7 +134,11 @@ - jdk-old + + errorprone-jdk11 [1.8,17) @@ -142,7 +148,11 @@ - jdk-mid + + errorprone-jdk17 [17,21) diff --git a/java-bigtable/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/internal/csm/attributes/EnvInfoTest.java b/java-bigtable/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/internal/csm/attributes/EnvInfoTest.java index b31570e60839..4c81aeb09396 100644 --- a/java-bigtable/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/internal/csm/attributes/EnvInfoTest.java +++ b/java-bigtable/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/internal/csm/attributes/EnvInfoTest.java @@ -23,7 +23,6 @@ import com.google.cloud.opentelemetry.detection.GCPPlatformDetector.SupportedPlatform; import com.google.common.base.Function; import com.google.common.base.Supplier; -import com.google.common.base.Suppliers; import com.google.common.collect.ImmutableMap; import java.util.Map; import org.junit.jupiter.api.Test; From 1a0361ffa5c924fe9e23ae7fa0f525c9469743bb Mon Sep 17 00:00:00 2001 From: Lawrence Qiu Date: Thu, 4 Jun 2026 14:52:52 +0000 Subject: [PATCH 07/18] test(bigtable): remove redundant null assertions on Void futures Remove tautological assertThat(f.get()).isNull() assertions on ApiFuture instances where f.get() normal completion is already evaluated lines earlier. This cleanly resolves Error Prone NullArgumentForNonNullParameter warnings without adding @SuppressWarnings annotations. BUG=b/481669998 TAG=agy CONV=7b193e4d-38f8-450c-8475-0b9ae0d04507 --- .../cloud/bigtable/data/v2/stub/EnhancedBigtableStubTest.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/java-bigtable/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubTest.java b/java-bigtable/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubTest.java index c594ce86091c..513a7e725e9c 100644 --- a/java-bigtable/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubTest.java +++ b/java-bigtable/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubTest.java @@ -385,7 +385,6 @@ public void testMutateRowRequestResponseConversion() MutateRowRequest protoReq = fakeDataService.mutateRowRequests.poll(1, TimeUnit.SECONDS); assertThat(protoReq) .isEqualTo(req.toProto(RequestContext.create(PROJECT_ID, INSTANCE_ID, APP_PROFILE_ID))); - assertThat(f.get()).isNull(); } @Test @@ -406,8 +405,6 @@ public void testMutateRowRequestParams() throws ExecutionException, InterruptedE // StatsHeadersUnaryCallable assertThat(reqMetadata.keys()).contains("bigtable-client-attempt-epoch-usec"); - - assertThat(f.get()).isNull(); } @Test From ed037fcdb24ed3504e3a4e821e38f3821b9c6ca1 Mon Sep 17 00:00:00 2001 From: Lawrence Qiu Date: Thu, 4 Jun 2026 21:30:39 +0000 Subject: [PATCH 08/18] refactor(datastore): rename limit iterator to results for clarity Rename Iterator temporary variable in DatastoreHelper.get() from misleading "limit" to "results" based on PR review feedback. BUG=b/481669998 TAG=agy CONV=7b193e4d-38f8-450c-8475-0b9ae0d04507 --- .../java/com/google/cloud/datastore/DatastoreHelper.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/java-datastore/google-cloud-datastore/src/main/java/com/google/cloud/datastore/DatastoreHelper.java b/java-datastore/google-cloud-datastore/src/main/java/com/google/cloud/datastore/DatastoreHelper.java index 7c0d73f0f8df..fd99328b7c89 100644 --- a/java-datastore/google-cloud-datastore/src/main/java/com/google/cloud/datastore/DatastoreHelper.java +++ b/java-datastore/google-cloud-datastore/src/main/java/com/google/cloud/datastore/DatastoreHelper.java @@ -37,13 +37,13 @@ static Key allocateId(Datastore service, IncompleteKey key) { } static Entity get(Transaction reader, Key key) { - Iterator limit = reader.get(new Key[] {key}); - return limit.hasNext() ? limit.next() : null; + Iterator results = reader.get(new Key[] {key}); + return results.hasNext() ? results.next() : null; } static Entity get(Datastore reader, Key key, ReadOption... options) { - Iterator limit = reader.get(Collections.singletonList(key), options); - return limit.hasNext() ? limit.next() : null; + Iterator results = reader.get(Collections.singletonList(key), options); + return results.hasNext() ? results.next() : null; } static Entity add(DatastoreWriter writer, FullEntity entity) { From 55abeae6c93023d42af615ccd62d19cdf880688b Mon Sep 17 00:00:00 2001 From: Lawrence Qiu Date: Thu, 4 Jun 2026 21:39:43 +0000 Subject: [PATCH 09/18] test(bigtable): restore f.get() verification and suppress warnings Restore assertThat(f.get()).isNull() assertions in EnhancedBigtableStubTest based on PR review feedback to explicitly document asynchronous future completion. Add @SuppressWarnings("NullArgumentForNonNullParameter") annotations to resolve Error Prone warnings triggered by Truth.assertThat() receiving an ApiFuture result. BUG=b/481669998 TAG=agy CONV=7b193e4d-38f8-450c-8475-0b9ae0d04507 --- .../bigtable/data/v2/stub/EnhancedBigtableStubTest.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/java-bigtable/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubTest.java b/java-bigtable/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubTest.java index 513a7e725e9c..f20ad1a3e5fd 100644 --- a/java-bigtable/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubTest.java +++ b/java-bigtable/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubTest.java @@ -371,6 +371,7 @@ public void testRMWRequestResponseConversion() throws ExecutionException, Interr } @Test + @SuppressWarnings("NullArgumentForNonNullParameter") public void testMutateRowRequestResponseConversion() throws ExecutionException, InterruptedException { RowMutation req = RowMutation.create(TableId.of("my-table"), "my-key").deleteRow(); @@ -385,9 +386,11 @@ public void testMutateRowRequestResponseConversion() MutateRowRequest protoReq = fakeDataService.mutateRowRequests.poll(1, TimeUnit.SECONDS); assertThat(protoReq) .isEqualTo(req.toProto(RequestContext.create(PROJECT_ID, INSTANCE_ID, APP_PROFILE_ID))); + assertThat(f.get()).isNull(); } @Test + @SuppressWarnings("NullArgumentForNonNullParameter") public void testMutateRowRequestParams() throws ExecutionException, InterruptedException { RowMutation req = RowMutation.create(TABLE_ID, "my-key").deleteRow(); @@ -405,6 +408,8 @@ public void testMutateRowRequestParams() throws ExecutionException, InterruptedE // StatsHeadersUnaryCallable assertThat(reqMetadata.keys()).contains("bigtable-client-attempt-epoch-usec"); + + assertThat(f.get()).isNull(); } @Test From 5e3758a64b560c7dd42c3923129b5907684433d6 Mon Sep 17 00:00:00 2001 From: Lawrence Qiu Date: Fri, 5 Jun 2026 15:56:50 +0000 Subject: [PATCH 10/18] refactor(config): modernize Error Prone POM profiles and compiler flags - Drop legacy Error Prone downgrade profiles (errorprone-jdk11, errorprone-jdk17) as Error Prone 2.43.0+ requires JDK 21+ execution. - Scope `-XDaddTypeAnnotationsToSymbol=true` strictly to JDK 21 execution via dedicated `errorprone-jdk21` profile, setting default javac arg to benign `-g`. On JDK 22+ (including 25 and 26), the Javac fix is enabled by default. Ref: https://github.com/google/error-prone/issues/5426 BUG=b/481669998 TAG=agy CONV=7b193e4d-38f8-450c-8475-0b9ae0d04507 --- google-cloud-pom-parent/pom.xml | 34 +++++++++------------------------ 1 file changed, 9 insertions(+), 25 deletions(-) diff --git a/google-cloud-pom-parent/pom.xml b/google-cloud-pom-parent/pom.xml index c1e2011e202e..210357dc782e 100644 --- a/google-cloud-pom-parent/pom.xml +++ b/google-cloud-pom-parent/pom.xml @@ -23,9 +23,9 @@ false java.header 2.48.0 - - -XDaddTypeAnnotationsToSymbol=true + + -g @@ -134,31 +134,15 @@ - - errorprone-jdk11 + + errorprone-jdk21 - [1.8,17) + 21 - 2.38.0 - -g - - - - - errorprone-jdk17 - - [17,21) - - - 2.42.0 - -g + -XDaddTypeAnnotationsToSymbol=true From d466a78b8e512dd78fe1f453eedc2c2c3b029cc9 Mon Sep 17 00:00:00 2001 From: Lawrence Qiu Date: Fri, 5 Jun 2026 15:58:37 +0000 Subject: [PATCH 11/18] refactor(config): restore legacy Error Prone versions for JDK 8+ support Restore downgrade profiles (`errorprone-jdk11`, `errorprone-jdk17`) in parent POM to ensure builds executed on older Javac compilers (JDK 8, 11, 17) use compatible Error Prone versions (`2.38.0`, `2.42.0`). BUG=b/481669998 TAG=agy CONV=7b193e4d-38f8-450c-8475-0b9ae0d04507 --- google-cloud-pom-parent/pom.xml | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/google-cloud-pom-parent/pom.xml b/google-cloud-pom-parent/pom.xml index 210357dc782e..83da86c0ebd4 100644 --- a/google-cloud-pom-parent/pom.xml +++ b/google-cloud-pom-parent/pom.xml @@ -133,6 +133,28 @@ + + + errorprone-jdk11 + + [1.8,17) + + + 2.38.0 + -g + + + + + errorprone-jdk17 + + [17,21) + + + 2.42.0 + -g + + + errorprone-jdk11 [1.8,17) @@ -145,7 +147,8 @@ - + errorprone-jdk17 [17,21) @@ -156,9 +159,13 @@ - + errorprone-jdk21 21 From dd6eadd3ac866a71f29b2dfefc484b835b4af856 Mon Sep 17 00:00:00 2001 From: Lawrence Qiu Date: Fri, 5 Jun 2026 16:10:44 +0000 Subject: [PATCH 13/18] chore(datastore): remove obsolete Error Prone management comment Remove outdated comment referencing unmanaged Error Prone Core synchronization in `java-datastore/pom.xml`, as the version is now centrally managed by the top-level parent POM. Ref: https://github.com/googleapis/java-datastore/issues/1889 BUG=b/481669998 TAG=agy CONV=7b193e4d-38f8-450c-8475-0b9ae0d04507 --- java-datastore/pom.xml | 2 -- 1 file changed, 2 deletions(-) diff --git a/java-datastore/pom.xml b/java-datastore/pom.xml index 1e0dcf099145..2ceaf50a1ca7 100644 --- a/java-datastore/pom.xml +++ b/java-datastore/pom.xml @@ -144,8 +144,6 @@ github google-cloud-datastore-parent https://googleapis.dev/java/google-api-grpc/latest - - From b6cf4f9f88493a4a3ce4909fe09aa28a42c0d840 Mon Sep 17 00:00:00 2001 From: Lawrence Qiu Date: Fri, 5 Jun 2026 16:25:43 +0000 Subject: [PATCH 14/18] refactor(bigtable): eliminate fully qualified class name in VRpcResultSubject Inline `retryInfo.getRetryDelay()` calls within `retryInfoDelay()` subject assertion to avoid fully qualified `com.google.protobuf.Duration` class reference per PR review. BUG=b/481669998 TAG=agy CONV=7b193e4d-38f8-450c-8475-0b9ae0d04507 --- .../data/v2/internal/test_helpers/VRpcResultSubject.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/java-bigtable/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/internal/test_helpers/VRpcResultSubject.java b/java-bigtable/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/internal/test_helpers/VRpcResultSubject.java index c84b6d5b4f67..ba78793c5a6b 100644 --- a/java-bigtable/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/internal/test_helpers/VRpcResultSubject.java +++ b/java-bigtable/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/internal/test_helpers/VRpcResultSubject.java @@ -49,8 +49,9 @@ public ComparableSubject retryInfoDelay() { RetryInfo retryInfo = actual.getRetryInfo(); Duration delay = null; if (retryInfo != null) { - com.google.protobuf.Duration d = retryInfo.getRetryDelay(); - delay = Duration.ofSeconds(d.getSeconds()).plus(Duration.ofNanos(d.getNanos())); + delay = + Duration.ofSeconds(retryInfo.getRetryDelay().getSeconds()) + .plus(Duration.ofNanos(retryInfo.getRetryDelay().getNanos())); } return check("retryInfo.delay").that(delay); } From b2ad948084b2a164b88dec3a419f943c047e91b5 Mon Sep 17 00:00:00 2001 From: Lawrence Qiu Date: Mon, 8 Jun 2026 14:47:19 +0000 Subject: [PATCH 15/18] fix(bigtable): resolve data race in ClientTest Use CopyOnWriteArrayList instead of ArrayList in FakeBigtableService mock implementation. The mock service receives gRPC requests on gRPC executor threads and adds them to openSessionRequests and vrpcRequests. The test thread reads these lists to verify client payloads. Without proper thread synchronization, visibility and ordering issues can cause the test thread to read a null element during ArrayList.add, resulting in a NullPointerException in testMaterializedViewRequestSent. BUG=b/481669998 TAG=agy CONV=7b193e4d-38f8-450c-8475-0b9ae0d04507 --- .../cloud/bigtable/data/v2/internal/api/ClientTest.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/java-bigtable/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/internal/api/ClientTest.java b/java-bigtable/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/internal/api/ClientTest.java index 7a92e5eb608a..641a63f0a573 100644 --- a/java-bigtable/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/internal/api/ClientTest.java +++ b/java-bigtable/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/internal/api/ClientTest.java @@ -45,9 +45,9 @@ import io.grpc.Server; import io.grpc.stub.StreamObserver; import java.io.IOException; -import java.util.ArrayList; import java.util.List; import java.util.concurrent.CompletableFuture; +import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.ExecutionException; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; @@ -257,8 +257,8 @@ public void testMaterializedViewRequestSent() throws Exception { } class FakeBigtableService extends BigtableGrpc.BigtableImplBase { - private final List openSessionRequests = new ArrayList<>(); - private final List vrpcRequests = new ArrayList<>(); + private final List openSessionRequests = new CopyOnWriteArrayList<>(); + private final List vrpcRequests = new CopyOnWriteArrayList<>(); @Override public void getClientConfiguration( From 90d0a4104491bdfc2fdff094e11b5959f9011a6a Mon Sep 17 00:00:00 2001 From: Lawrence Qiu Date: Mon, 8 Jun 2026 16:00:34 +0000 Subject: [PATCH 16/18] feat(ci): update sdk-platform-java-nightly matrix for latest OS and Java versions - Update OS matrix to latest versions: ubuntu-24.04, windows-2025, macos-15 (ARM64) - Expand Java matrix to include missing LTS versions (21, 25) and latest JDK 26 BUG=b/481669998 TAG=agy CONV=7b193e4d-38f8-450c-8475-0b9ae0d04507 --- .github/workflows/sdk-platform-java-nightly.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/sdk-platform-java-nightly.yaml b/.github/workflows/sdk-platform-java-nightly.yaml index 97d52681862c..27edfd43e5a0 100644 --- a/.github/workflows/sdk-platform-java-nightly.yaml +++ b/.github/workflows/sdk-platform-java-nightly.yaml @@ -11,8 +11,8 @@ jobs: strategy: fail-fast: false matrix: - os: [ macos-15-intel, ubuntu-22.04, windows-2022 ] - java: [ 11, 17 ] + os: [ macos-15, ubuntu-24.04, windows-2025 ] + java: [ 11, 17, 21, 25, 26 ] runs-on: ${{ matrix.os }} steps: - run: git config --global core.longpaths true @@ -44,7 +44,7 @@ jobs: strategy: fail-fast: false matrix: - os: [ macos-15-intel, ubuntu-22.04, windows-2022 ] + os: [ macos-15, ubuntu-24.04, windows-2025 ] runs-on: ${{ matrix.os }} steps: - run: git config --global core.longpaths true From 91f99b3836eb1e6934c21c7983f807e029cd22bd Mon Sep 17 00:00:00 2001 From: Lawrence Qiu Date: Tue, 9 Jun 2026 01:29:49 +0000 Subject: [PATCH 17/18] refactor(config): consolidate shared properties and remove redundant profile args - Consolidate errorprone.version, skipUnitTests, and checkstyle.header.file into sdk-platform-java-config/pom.xml. - Reparent gapic-generator-java-pom-parent/pom.xml to inherit directly from sdk-platform-java-config, establishing a unified monorepo configuration hierarchy. - Remove redundant errorprone.javac.args overrides in legacy JDK 11 and 17 profiles inside google-cloud-pom-parent/pom.xml. BUG=b/481669998 TAG=agy CONV=7b193e4d-38f8-450c-8475-0b9ae0d04507 --- google-cloud-pom-parent/pom.xml | 5 ----- sdk-platform-java/gapic-generator-java-pom-parent/pom.xml | 8 +++----- sdk-platform-java/sdk-platform-java-config/pom.xml | 3 +++ 3 files changed, 6 insertions(+), 10 deletions(-) diff --git a/google-cloud-pom-parent/pom.xml b/google-cloud-pom-parent/pom.xml index e1b3fabd302d..47b4412c10a6 100644 --- a/google-cloud-pom-parent/pom.xml +++ b/google-cloud-pom-parent/pom.xml @@ -20,9 +20,6 @@ - false - java.header - 2.48.0 -g @@ -143,7 +140,6 @@ 2.38.0 - -g @@ -155,7 +151,6 @@ 2.42.0 - -g diff --git a/sdk-platform-java/gapic-generator-java-pom-parent/pom.xml b/sdk-platform-java/gapic-generator-java-pom-parent/pom.xml index 771043084b09..01e160486f0f 100644 --- a/sdk-platform-java/gapic-generator-java-pom-parent/pom.xml +++ b/sdk-platform-java/gapic-generator-java-pom-parent/pom.xml @@ -14,13 +14,12 @@ com.google.cloud - google-cloud-shared-config - 1.17.0 + sdk-platform-java-config + 3.63.0 + ../sdk-platform-java-config - false - java.header 8 true + false + java.header + 2.48.0 \ No newline at end of file From f0af0a2e6b06ff388152f04a0ce0ad16cc3e9267 Mon Sep 17 00:00:00 2001 From: Lawrence Qiu Date: Tue, 9 Jun 2026 01:32:20 +0000 Subject: [PATCH 18/18] revert: undo parent POM restructuring and property consolidation Undoes the previous property centralization and parent POM restructuring in response to PR review feedback: - Restores skipUnitTests and checkstyle.header.file properties to their original files: google-cloud-pom-parent/pom.xml and gapic-generator-java-pom-parent/pom.xml. - Restores gapic-generator-java-pom-parent/pom.xml to inherit directly from google-cloud-shared-config. - Reverts all changes to sdk-platform-java-config/pom.xml. - Retains Error Prone version updates (2.48.0) and redundant compiler flag cleanups. BUG=b/481669998 TAG=agy CONV=7b193e4d-38f8-450c-8475-0b9ae0d04507 --- google-cloud-pom-parent/pom.xml | 3 +++ sdk-platform-java/gapic-generator-java-pom-parent/pom.xml | 8 +++++--- sdk-platform-java/sdk-platform-java-config/pom.xml | 3 --- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/google-cloud-pom-parent/pom.xml b/google-cloud-pom-parent/pom.xml index 47b4412c10a6..a5f1e0dacdc4 100644 --- a/google-cloud-pom-parent/pom.xml +++ b/google-cloud-pom-parent/pom.xml @@ -20,6 +20,9 @@ + false + java.header + 2.48.0 -g diff --git a/sdk-platform-java/gapic-generator-java-pom-parent/pom.xml b/sdk-platform-java/gapic-generator-java-pom-parent/pom.xml index 01e160486f0f..771043084b09 100644 --- a/sdk-platform-java/gapic-generator-java-pom-parent/pom.xml +++ b/sdk-platform-java/gapic-generator-java-pom-parent/pom.xml @@ -14,12 +14,13 @@ com.google.cloud - sdk-platform-java-config - 3.63.0 - ../sdk-platform-java-config + google-cloud-shared-config + 1.17.0 + false + java.header 8 true - false - java.header - 2.48.0 \ No newline at end of file