Skip to content

Commit 53e3bb0

Browse files
authored
---
yaml --- r: 8623 b: refs/heads/master c: 7b15777 h: refs/heads/master i: 8621: d03c2e2 8619: 9832f14 8615: ac6cb60 8607: a5e18b5
1 parent e881bfc commit 53e3bb0

3 files changed

Lines changed: 22 additions & 14 deletions

File tree

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
refs/heads/master: 0aac9504444db2cfdbc5df7ce22082b60ae1781a
2+
refs/heads/master: 7b157776e88d1fe7c81d0e26e3a3ded64cd986dc
33
refs/heads/travis: 47e4fee4fd5af9b2a8ce46f23c72ec95f9b195b2
44
refs/heads/gh-pages: 6daca92127d91b7c2c99490080ecf8a13fa94cde
55
refs/tags/0.0.9: 22f1839238f66c39e67ed4dfdcd273b1ae2e8444

trunk/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Job.java

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -253,9 +253,8 @@ public Job waitFor(RetryOption... waitOptions) throws InterruptedException {
253253
*
254254
* <pre>{@code
255255
* Job job = bigquery.create(queryJobInfo);
256-
* job.waitFor();
257-
* QueryResponse response = job.getQueryResults();
258-
* QueryResult result = response.getResult();
256+
* job = job.waitFor();
257+
* QueryResult result = job.getQueryResults();
259258
* for (FieldValueList row : result.iterateAll()) {
260259
* // do something with the data
261260
* }
@@ -268,12 +267,14 @@ public QueryResult getQueryResults(QueryResultsOption... options) {
268267
throw new UnsupportedOperationException(
269268
"Getting query results is supported only for " + Type.QUERY + " jobs");
270269
}
271-
272-
// TODO(pongad): check job stats.state instead.
273-
QueryResponse response = bigquery.getQueryResults(getJobId(), options);
274-
if (!response.jobCompleted()) {
275-
throw new IllegalStateException("the job hasn't completed yet");
270+
if (getStatus().getState() != JobStatus.State.DONE) {
271+
throw new BigQueryException(BigQueryException.UNKNOWN_CODE, "the job hasn't completed yet");
276272
}
273+
if (getStatus().getError() != null) {
274+
throw new BigQueryException(
275+
BigQueryException.UNKNOWN_CODE, "job completed with error", getStatus().getError());
276+
}
277+
QueryResponse response = bigquery.getQueryResults(getJobId(), options);
277278
return response.getResult();
278279
}
279280

trunk/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1115,7 +1115,8 @@ public void testQueryRequestCompleted() throws InterruptedException {
11151115
new com.google.api.services.bigquery.model.Job()
11161116
.setConfiguration(QUERY_JOB_CONFIGURATION_FOR_QUERY.toPb())
11171117
.setJobReference(queryJob.toPb())
1118-
.setId(JOB);
1118+
.setId(JOB)
1119+
.setStatus(new com.google.api.services.bigquery.model.JobStatus().setState("DONE"));
11191120
GetQueryResultsResponse responsePb =
11201121
new GetQueryResultsResponse()
11211122
.setJobReference(queryJob.toPb())
@@ -1163,12 +1164,17 @@ public void testQueryRequestCompleted() throws InterruptedException {
11631164
@Test
11641165
public void testQueryRequestCompletedOnSecondAttempt() throws InterruptedException {
11651166
JobId queryJob = JobId.of(PROJECT, JOB);
1166-
com.google.api.services.bigquery.model.Job jobResponsePb =
1167+
com.google.api.services.bigquery.model.Job jobResponsePb1 =
11671168
new com.google.api.services.bigquery.model.Job()
11681169
.setConfiguration(QUERY_JOB_CONFIGURATION_FOR_QUERY.toPb())
11691170
.setJobReference(queryJob.toPb())
11701171
.setId(JOB);
11711172

1173+
com.google.api.services.bigquery.model.Job jobResponsePb2 =
1174+
jobResponsePb1
1175+
.clone()
1176+
.setStatus(new com.google.api.services.bigquery.model.JobStatus().setState("DONE"));
1177+
11721178
GetQueryResultsResponse responsePb1 =
11731179
new GetQueryResultsResponse()
11741180
.setJobReference(queryJob.toPb())
@@ -1185,8 +1191,9 @@ public void testQueryRequestCompletedOnSecondAttempt() throws InterruptedExcepti
11851191
.setTotalRows(BigInteger.valueOf(1L));
11861192

11871193
EasyMock.expect(
1188-
bigqueryRpcMock.create(JOB_INFO.toPb(), Collections.<BigQueryRpc.Option, Object>emptyMap()))
1189-
.andReturn(jobResponsePb);
1194+
bigqueryRpcMock.create(
1195+
JOB_INFO.toPb(), Collections.<BigQueryRpc.Option, Object>emptyMap()))
1196+
.andReturn(jobResponsePb1);
11901197

11911198
QueryResultsOption pageSizeOption = QueryResultsOption.pageSize(42L);
11921199
Map<BigQueryRpc.Option, Object> optionMap = Maps.newEnumMap(BigQueryRpc.Option.class);
@@ -1203,7 +1210,7 @@ public void testQueryRequestCompletedOnSecondAttempt() throws InterruptedExcepti
12031210
EasyMock.expect(
12041211
bigqueryRpcMock.getJob(
12051212
PROJECT, JOB, Collections.<BigQueryRpc.Option, Object>emptyMap()))
1206-
.andReturn(jobResponsePb);
1213+
.andReturn(jobResponsePb2);
12071214
EasyMock.expect(
12081215
bigqueryRpcMock.getQueryResults(PROJECT, JOB, optionMap)).andReturn(responsePb2);
12091216

0 commit comments

Comments
 (0)