Skip to content

Commit 12aa555

Browse files
committed
Fix empty list bug, handle job state and error in listJobs
1 parent e3a99c2 commit 12aa555

1 file changed

Lines changed: 12 additions & 2 deletions

File tree

gcloud-java-bigquery/src/main/java/com/google/gcloud/spi/DefaultBigQueryRpc.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
import com.google.api.services.bigquery.model.Job;
3636
import com.google.api.services.bigquery.model.JobList;
3737
import com.google.api.services.bigquery.model.JobReference;
38+
import com.google.api.services.bigquery.model.JobStatus;
3839
import com.google.api.services.bigquery.model.QueryRequest;
3940
import com.google.api.services.bigquery.model.QueryResponse;
4041
import com.google.api.services.bigquery.model.Table;
@@ -220,8 +221,9 @@ public Tuple<String, Iterable<Table>> listTables(String datasetId, Map<Option, ?
220221
.setMaxResults(MAX_RESULTS.getLong(options))
221222
.setPageToken(PAGE_TOKEN.getString(options))
222223
.execute();
224+
Iterable<TableList.Tables> tables = tableList.getTables();
223225
return Tuple.of(tableList.getNextPageToken(),
224-
Iterables.transform(tableList.getTables(),
226+
Iterables.transform(tables != null ? tables : ImmutableList.<TableList.Tables>of(),
225227
new Function<TableList.Tables, Table>() {
226228
@Override
227229
public Table apply(TableList.Tables f) {
@@ -350,11 +352,19 @@ public Tuple<String, Iterable<Job>> listJobs(Map<Option, ?> options) throws BigQ
350352
.setPageToken(PAGE_TOKEN.getString(options))
351353
.setProjection(DEFAULT_PROJECTION)
352354
.execute();
355+
Iterable<JobList.Jobs> jobs = jobsList.getJobs();
353356
return Tuple.of(jobsList.getNextPageToken(),
354-
Iterables.transform(jobsList.getJobs(),
357+
Iterables.transform(jobs != null ? jobs : ImmutableList.<JobList.Jobs>of(),
355358
new Function<JobList.Jobs, Job>() {
356359
@Override
357360
public Job apply(JobList.Jobs f) {
361+
JobStatus statusPb = f.getStatus() != null ? f.getStatus() : new JobStatus();
362+
if (statusPb.getState() == null) {
363+
statusPb.setState(f.getState());
364+
}
365+
if (statusPb.getErrorResult() == null) {
366+
statusPb.setErrorResult(f.getErrorResult());
367+
}
358368
return new Job()
359369
.setConfiguration(f.getConfiguration())
360370
.setId(f.getId())

0 commit comments

Comments
 (0)