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)); } }