You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beam.apache.org by ah...@apache.org on 2023/11/21 15:38:45 UTC

(beam) branch master updated: Fix BigQueryStorageWriteApiSchemaTransformProvider null pointer on numStreams (#29434)

This is an automated email from the ASF dual-hosted git repository.

ahmedabualsaud pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/beam.git


The following commit(s) were added to refs/heads/master by this push:
     new bb4b633b019 Fix BigQueryStorageWriteApiSchemaTransformProvider null pointer on numStreams (#29434)
bb4b633b019 is described below

commit bb4b633b01970d46359637d58a296b532269b18e
Author: Jeff Kinard <35...@users.noreply.github.com>
AuthorDate: Tue Nov 21 10:38:36 2023 -0500

    Fix BigQueryStorageWriteApiSchemaTransformProvider null pointer on numStreams (#29434)
    
    * Fix BigQueryStorageWriteApiSchemaTransformProvider null pointer on numStreams
    
    Signed-off-by: Jeffrey Kinard <je...@thekinards.com>
---
 .../BigQueryStorageWriteApiSchemaTransformProvider.java          | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/bigquery/providers/BigQueryStorageWriteApiSchemaTransformProvider.java b/sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/bigquery/providers/BigQueryStorageWriteApiSchemaTransformProvider.java
index 1b9eb309ec4..39e6fd7c809 100644
--- a/sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/bigquery/providers/BigQueryStorageWriteApiSchemaTransformProvider.java
+++ b/sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/bigquery/providers/BigQueryStorageWriteApiSchemaTransformProvider.java
@@ -177,7 +177,9 @@ public class BigQueryStorageWriteApiSchemaTransformProvider
             invalidConfigMessage + "Output must not be empty if error handling specified.");
       }
 
-      if (this.getAutoSharding() != null && this.getAutoSharding()) {
+      if (this.getAutoSharding() != null
+          && this.getAutoSharding()
+          && this.getNumStreams() != null) {
         checkArgument(
             this.getNumStreams() == 0,
             invalidConfigMessage
@@ -338,7 +340,8 @@ public class BigQueryStorageWriteApiSchemaTransformProvider
         Boolean autoSharding = configuration.getAutoSharding();
         Integer numStreams = configuration.getNumStreams();
         // Triggering frequency is only applicable for exactly-once
-        if (!configuration.getUseAtLeastOnceSemantics()) {
+        if (configuration.getUseAtLeastOnceSemantics() == null
+            || !configuration.getUseAtLeastOnceSemantics()) {
           write =
               write.withTriggeringFrequency(
                   (triggeringFrequency == null || triggeringFrequency <= 0)
@@ -346,7 +349,7 @@ public class BigQueryStorageWriteApiSchemaTransformProvider
                       : Duration.standardSeconds(triggeringFrequency));
         }
         // set num streams if specified, otherwise default to autoSharding
-        if (numStreams > 0) {
+        if (numStreams != null && numStreams > 0) {
           write = write.withNumStorageWriteApiStreams(numStreams);
         } else if (autoSharding == null || autoSharding) {
           write = write.withAutoSharding();