dashboard: Fix NPE when event array is empty. (#2136)
diff --git a/dashboard/server/src/main/java/build/bazel/dashboard/github/sync/event/PollGithubEventsTask.java b/dashboard/server/src/main/java/build/bazel/dashboard/github/sync/event/PollGithubEventsTask.java
index 80d6167..1d5d29d 100644
--- a/dashboard/server/src/main/java/build/bazel/dashboard/github/sync/event/PollGithubEventsTask.java
+++ b/dashboard/server/src/main/java/build/bazel/dashboard/github/sync/event/PollGithubEventsTask.java
@@ -150,7 +150,7 @@
}
var response = doRequest(owner, repo, perPage, page, etag);
var body = response.getBody();
- if (body != null) {
+ if (body != null && body.isArray() && !body.isEmpty()) {
if (page == 1) {
newState =
JsonState.<PollState>builder()
@@ -186,10 +186,14 @@
JsonNode body = response.getBody();
checkState(body != null && body.isArray());
- for (JsonNode event : body) {
- if (event.get("id").asLong() <= state.getEventId()) {
- terminate = true;
- break;
+ if (body.isEmpty()) {
+ terminate = true;
+ } else {
+ for (JsonNode event : body) {
+ if (event.get("id").asLong() <= state.getEventId()) {
+ terminate = true;
+ break;
+ }
}
}
} else {