[
https://issues.apache.org/jira/browse/BEAM-2400?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16709084#comment-16709084
]
Ahmet Altay commented on BEAM-2400:
-----------------------------------
DataflowTemplateJob does not support waitUntilFinish. As there is no job to
wait until completion. The bug is, it does not properly raise an
UnsupportedOperationException. The reason is base class
DataflowPipelineJob.java have additional code that will execute before calling
into the waitUntilFinish implementation
(https://github.com/apache/beam/blob/master/runners/google-cloud-dataflow-java/src/main/java/org/apache/beam/runners/dataflow/util/DataflowTemplateJob.java#L52)
in DataflowTemplateJob.
Primarily direct use of `jobId` [1] instead of calling `getJobId()` will result
in this. DataflowTemplateJob will raise UnsupportedOperationException properly
for `getJobId()`.
[1]
https://github.com/apache/beam/blob/a3a8a32dd64290a44c26bedff74b07d5ad571c82/runners/google-cloud-dataflow-java/src/main/java/org/apache/beam/runners/dataflow/DataflowPipelineJob.java#L471
> Null pointer exception when creating a template
> -----------------------------------------------
>
> Key: BEAM-2400
> URL: https://issues.apache.org/jira/browse/BEAM-2400
> Project: Beam
> Issue Type: Bug
> Components: runner-dataflow
> Reporter: Melissa Pashniak
> Priority: Minor
>
> The template is successfully created, but is then followed by a null pointer
> exception.
> Command:
> mvn compile exec:java -Dexec.mainClass=com.example.WordCount
> -Dexec.args="--runner=DataflowRunner \
> --project=my-project \
> --stagingLocation=gs://my-bucket/staging \
> --output=gs://my-bucket/output/outputfile \
> --templateLocation=gs://my-bucket/templates/mytemplate"
> INFO: Template successfully created.
> [WARNING]
> java.lang.reflect.InvocationTargetException
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:606)
> at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:293)
> at java.lang.Thread.run(Thread.java:745)
> Caused by: java.lang.NullPointerException
> at
> org.apache.beam.runners.dataflow.DataflowPipelineJob.getJobWithRetries(DataflowPipelineJob.java:489)
> at
> org.apache.beam.runners.dataflow.DataflowPipelineJob.getStateWithRetries(DataflowPipelineJob.java:465)
> at
> org.apache.beam.runners.dataflow.DataflowPipelineJob.waitUntilFinish(DataflowPipelineJob.java:304)
> at
> org.apache.beam.runners.dataflow.DataflowPipelineJob.waitUntilFinish(DataflowPipelineJob.java:240)
> at
> org.apache.beam.runners.dataflow.DataflowPipelineJob.waitUntilFinish(DataflowPipelineJob.java:193)
> at
> org.apache.beam.runners.dataflow.DataflowPipelineJob.waitUntilFinish(DataflowPipelineJob.java:186)
> at com.example.WordCount.main(WordCount.java:184)
> ... 6 more
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)