diff --git a/google-cloud-clients/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobInfo.java b/google-cloud-clients/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobInfo.java index aa820496e10d..7dd8a0bddf89 100644 --- a/google-cloud-clients/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobInfo.java +++ b/google-cloud-clients/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobInfo.java @@ -180,7 +180,9 @@ static final class BuilderImpl extends Builder { this.statistics = JobStatistics.fromPb(jobPb); } this.userEmail = jobPb.getUserEmail(); - this.configuration = JobConfiguration.fromPb(jobPb.getConfiguration()); + if (jobPb.getConfiguration() != null) { + this.configuration = JobConfiguration.fromPb(jobPb.getConfiguration()); + } } @Override @@ -375,7 +377,9 @@ Job toPb() { if (statistics != null) { jobPb.setStatistics(statistics.toPb()); } - jobPb.setConfiguration(configuration.toPb()); + if(configuration != null){ + jobPb.setConfiguration(configuration.toPb()); + } return jobPb; } diff --git a/google-cloud-clients/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java b/google-cloud-clients/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java index 5a3d465e9db3..5ef6e610f41b 100644 --- a/google-cloud-clients/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java +++ b/google-cloud-clients/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java @@ -523,6 +523,16 @@ public void testToAndFromPb() { compareJob(expectedJob, Job.fromPb(serviceMockReturnsOptions, expectedJob.toPb())); } + @Test + public void testToAndFromPbWithoutConfiguration() { + JobInfo jobInfo = + JobInfo.newBuilder(null) + .build(); + initializeExpectedJob(4, jobInfo); + replay(bigquery); + compareJob(expectedJob, Job.fromPb(serviceMockReturnsOptions, expectedJob.toPb())); + } + private void compareJob(Job expected, Job value) { assertEquals(expected, value); compareJobInfo(expected, value);