From 60c213c94d3d4287f3735f6728a4bd5afacc2d61 Mon Sep 17 00:00:00 2001 From: Yi Hu Date: Mon, 20 Oct 2025 11:03:34 -0400 Subject: [PATCH 1/2] Fix BigQuerrIO File load validate runtime value provider --- .../org/apache/beam/sdk/io/gcp/bigquery/BatchLoads.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/bigquery/BatchLoads.java b/sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/bigquery/BatchLoads.java index dd1d831f1950..252e55d34c07 100644 --- a/sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/bigquery/BatchLoads.java +++ b/sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/bigquery/BatchLoads.java @@ -285,14 +285,17 @@ public void validate(@Nullable PipelineOptions maybeOptions) { PipelineOptions options = Preconditions.checkArgumentNotNull(maybeOptions); // We will use a BigQuery load job -- validate the temp location. String tempLocation; - if (customGcsTempLocation == null || customGcsTempLocation.get() == null) { + if (customGcsTempLocation == null) { tempLocation = options.getTempLocation(); } else { if (!customGcsTempLocation.isAccessible()) { // Can't perform verification in this case. return; + } else if (Strings.isNullOrEmpty(customGcsTempLocation.get())) { + tempLocation = options.getTempLocation(); + } else { + tempLocation = customGcsTempLocation.get(); } - tempLocation = customGcsTempLocation.get(); } checkArgument( !Strings.isNullOrEmpty(tempLocation), From 5ea04f1734fc920de1a09756eeb30f296d6486d9 Mon Sep 17 00:00:00 2001 From: Yi Hu Date: Mon, 20 Oct 2025 11:38:34 -0400 Subject: [PATCH 2/2] Dedup test case --- .../apache/beam/sdk/io/gcp/bigquery/BigQueryIOWriteTest.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sdks/java/io/google-cloud-platform/src/test/java/org/apache/beam/sdk/io/gcp/bigquery/BigQueryIOWriteTest.java b/sdks/java/io/google-cloud-platform/src/test/java/org/apache/beam/sdk/io/gcp/bigquery/BigQueryIOWriteTest.java index 89059634631f..f943b60118d2 100644 --- a/sdks/java/io/google-cloud-platform/src/test/java/org/apache/beam/sdk/io/gcp/bigquery/BigQueryIOWriteTest.java +++ b/sdks/java/io/google-cloud-platform/src/test/java/org/apache/beam/sdk/io/gcp/bigquery/BigQueryIOWriteTest.java @@ -4444,6 +4444,8 @@ public void testUpsertAndDeleteBeamRows() throws Exception { @Test public void testCustomGcsTempLocationNull() throws Exception { + assumeTrue(!useStreaming); + assumeTrue(!useStorageApi); BigQueryIO.Write write = BigQueryIO.writeTableRows() .to("dataset-id.table-id")