ChangeData: Prevent possible NPE when loading current patch set
Since change I7aa0ae0fa, Change.Id.fromEditRefPart can return null,
but ChangeData#ensureCurrentPatchSetLoaded dereferences its return
value without any check.
Bug: Issue 4112
Change-Id: I750b803e38de8638255c3aa174670531db348f75
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/query/change/ChangeData.java b/gerrit-server/src/main/java/com/google/gerrit/server/query/change/ChangeData.java
index 8ef888c..0618db9 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/query/change/ChangeData.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/query/change/ChangeData.java
@@ -14,6 +14,7 @@
package com.google.gerrit.server.query.change;
+import static com.google.common.base.Preconditions.checkNotNull;
import static com.google.gerrit.server.ApprovalsUtil.sortApprovals;
import com.google.auto.value.AutoValue;
@@ -802,11 +803,11 @@
return Collections.emptySet();
}
editsByUser = new HashSet<>();
- Change.Id id = change.getId();
+ Change.Id id = checkNotNull(change.getId());
try (Repository repo = repoManager.openRepository(change.getProject())) {
for (String ref
: repo.getRefDatabase().getRefs(RefNames.REFS_USERS).keySet()) {
- if (Change.Id.fromEditRefPart(ref).equals(id)) {
+ if (id.equals(Change.Id.fromEditRefPart(ref))) {
editsByUser.add(Account.Id.fromRefPart(ref));
}
}