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

Reply via email to