[Bug]: upload_graph option does not work with Dataflow Java Runner v2

What happened?

Today, if you try to run a runner v2 job with the upload_graph option, the job fails with the following exception:

java.lang.NullPointerException: Cannot invoke "java.util.List.clear()" because the return value of "com.google.api.services.dataflow.model.Job.getSteps()" is null
	at org.apache.beam.runners.dataflow.DataflowRunner.run(DataflowRunner.java:1404)
	at org.apache.beam.runners.dataflow.DataflowRunner.run(DataflowRunner.java:203)
	at org.apache.beam.sdk.Pipeline.run(Pipeline.java:325)
	at org.apache.beam.sdk.Pipeline.run(Pipeline.java:310)
	...

I reproed this against our test suites:

Change I made - 70650bd
Result - https://github.com/apache/beam/actions/runs/10358654870

Issue Priority

Priority: 2 (default / most bugs should be filed as P2)

Issue Components

  • Component: Python SDK
  • Component: Java SDK
  • Component: Go SDK
  • Component: Typescript SDK
  • Component: IO connector
  • Component: Beam YAML
  • Component: Beam examples
  • Component: Beam playground
  • Component: Beam katas
  • Component: Website
  • Component: Infrastructure
  • Component: Spark Runner
  • Component: Flink Runner
  • Component: Samza Runner
  • Component: Twister2 Runner
  • Component: Hazelcast Jet Runner
  • Component: Google Cloud Dataflow Runner