Java 设置';干运行';真实

Java 设置';干运行';真实,java,nullpointerexception,google-bigquery,Java,Nullpointerexception,Google Bigquery,根据BigQuery中dryRun字段的文档,当设置为true时,将不执行查询,而是验证查询并返回一些基本统计信息: [可选]如果设置为true,则BigQuery不会运行作业。相反,如果 查询有效,BigQuery返回有关作业的统计信息,例如 将处理多少字节。如果查询无效,则会出现错误 返回。默认值为false 但是,使用,并将dryRun设置为true会引发NullPointerException: [...] JobConfiguration jobConfiguration = ne

根据BigQuery中
dryRun
字段的文档,当设置为
true
时,将不执行查询,而是验证查询并返回一些基本统计信息:

[可选]如果设置为true,则BigQuery不会运行作业。相反,如果 查询有效,BigQuery返回有关作业的统计信息,例如 将处理多少字节。如果查询无效,则会出现错误 返回。默认值为false

但是,使用,并将
dryRun
设置为
true
会引发NullPointerException:

[...] 
JobConfiguration jobConfiguration = newBuilder(query)
                            .setAllowLargeResults(true)
                            .setUseLegacySql(false)
                            .setDryRun(true)
                            .setDestinationTable(TableId.of("<project>", "<dataset>", "<table>"))
                            .setCreateDisposition(CREATE_IF_NEEDED)
                            .setWriteDisposition(WRITE_TRUNCATE)
                            .setPriority(INTERACTIVE)
                            .build();

                    JobInfo jobInfo = JobInfo.of(jobConfiguration);
                    Job job = bigQuery.create(jobInfo);
[...]
[…]
JobConfiguration JobConfiguration=newBuilder(查询)
.setAllowLargeResults(真)
.setUseLegacySql(false)
.setDryRun(真)
.setDestinationTable(表ID.of(“,”,“))
.setCreateDisposition(如果需要,则创建)
.setWriteDisposition(WRITE_TRUNCATE)
.setPriority(交互式)
.build();
JobInfo JobInfo=JobInfo.of(作业配置);
Job Job=bigQuery.create(jobInfo);
[...]
例外情况:

线程“main”java.lang.NullPointerException中的异常 在com.google.cloud.bigquery.JobConfiguration.fromPb上(JobConfiguration.java:140) 请访问com.google.cloud.bigquery.JobInfo$BuilderImpl。(JobInfo.java:182) 位于com.google.cloud.bigquery.Job.fromPb(Job.java:324) 在com.google.cloud.bigquery.BigQueryImpl.create上(BigQueryImpl.java:229) 这是Java客户端库中的一个bug,还是我做了/使用了错误

注意:将其设置为
false
可正常工作

注2
jobConfiguration
jobInfo
均已初始化,即不为
null


这是客户端库中的一个bug。以下是GitHub中的问题


只是一个想法。。。
build()
的结果是否可能为空?我想知道构造
作业配置
是否由于某种原因而失败。@ElliottBrossard:更新的问题(不是
null
Exception in thread "main" java.lang.NullPointerException
    at com.google.cloud.bigquery.JobConfiguration.fromPb(JobConfiguration.java:140)
    at com.google.cloud.bigquery.JobInfo$BuilderImpl.<init>(JobInfo.java:182)
    at com.google.cloud.bigquery.Job.fromPb(Job.java:324)
    at com.google.cloud.bigquery.BigQueryImpl.create(BigQueryImpl.java:229)