[ 
https://issues.apache.org/jira/browse/BEAM-2406?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16036539#comment-16036539
 ] 

ASF GitHub Bot commented on BEAM-2406:
--------------------------------------

GitHub user reuvenlax opened a pull request:

    https://github.com/apache/beam/pull/3293

    [BEAM-2406] Fix NullPointerException when writing an empty table

    When writing to an empty table, BigQueryIO was throwing a NPE because 
WritePartitions was returning null. This was a regression in previous behavior.
    
    R: @jkff 

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/reuvenlax/incubator-beam fix_bq_npe

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/beam/pull/3293.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #3293
    
----
commit e7dc19e118f00e3706c15e19ece7e0f34de1d72e
Author: Reuven Lax <[email protected]>
Date:   2017-06-03T01:29:59Z

    Fix crash.

commit 2c6e4b443110b0fcc1334e9d1fac7493b15a4982
Author: Reuven Lax <[email protected]>
Date:   2017-06-05T05:11:41Z

    Fix test.

----


> NullPointerException when writing an empty table to BigQuery
> ------------------------------------------------------------
>
>                 Key: BEAM-2406
>                 URL: https://issues.apache.org/jira/browse/BEAM-2406
>             Project: Beam
>          Issue Type: Bug
>          Components: sdk-java-gcp
>    Affects Versions: 2.0.0
>            Reporter: Ben Chambers
>            Assignee: Reuven Lax
>            Priority: Minor
>
> Originally reported on Stackoverflow:
> https://stackoverflow.com/questions/44314030/handling-empty-pcollections-with-bigquery-in-apache-beam
> It looks like if there is no data to write, then WritePartitions will return 
> a null destination, as explicitly stated in the comments:
> https://github.com/apache/beam/blob/v2.0.0/sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/bigquery/WritePartition.java#L126
> But, the ConstantTableDestination doesn't turn that into the constant 
> destination as the comment promises, instead it returns that `null` 
> destination:
> https://github.com/apache/beam/blob/53c9bf4cd325035fabde192c63652ef6d591b93c/sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/bigquery/DynamicDestinationsHelpers.java#L74
> This leads to a null pointer error here since the `tableDestination` is that 
> null result from calling `getTable`:
> https://github.com/apache/beam/blob/v2.0.0/sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/bigquery/WriteTables.java#L97



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to