[
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)