Skip to content

Commit 94db509

Browse files
committed
fix(bigquery): use Longs.tryParse for numeric pageToken check
1 parent e9804d4 commit 94db509

1 file changed

Lines changed: 3 additions & 9 deletions

File tree

  • java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery

‎java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java‎

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@
6464
import com.google.common.collect.Lists;
6565
import com.google.common.collect.Maps;
6666
import com.google.common.net.HostAndPort;
67+
import com.google.common.primitives.Longs;
6768
import io.grpc.ManagedChannelBuilder;
6869
import io.opentelemetry.api.common.Attributes;
6970
import io.opentelemetry.api.trace.Span;
@@ -2392,15 +2393,8 @@ public com.google.api.services.bigquery.model.QueryResponse call()
23922393
boolean hasMorePages = results.getPageToken() != null;
23932394
long initialRowOffset = 0L;
23942395
if (hasMorePages && isArrow) {
2395-
String pageToken = results.getPageToken();
2396-
boolean isNumeric = !pageToken.isEmpty();
2397-
for (int i = 0; i < pageToken.length(); i++) {
2398-
if (!Character.isDigit(pageToken.charAt(i))) {
2399-
isNumeric = false;
2400-
break;
2401-
}
2402-
}
2403-
initialRowOffset = isNumeric ? Long.parseLong(pageToken) : firstPageRows.size();
2396+
Long parsedOffset = Longs.tryParse(results.getPageToken());
2397+
initialRowOffset = parsedOffset != null ? parsedOffset : firstPageRows.size();
24042398
if (content.getMaxResults() != null
24052399
&& (initialRowOffset >= content.getMaxResults()
24062400
|| firstPageRows.size() >= content.getMaxResults())) {

0 commit comments

Comments
 (0)