ChangeData: Properly detect missing change during reloadChange
ChangeNotes.Factory#create throws NPE if the change is missing, rather
than returning a ChangeNotes with a null Change field as this test was
assuming. Use the createChecked method instead. This produces the same
OrmException as previously, but also includes the actual
NoSuchChangeException for more context.
Change-Id: I8d2f83c1feafd147bc60a2a16931586032e620e5
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 01b4bc1..085f34c 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
@@ -765,11 +765,12 @@
}
public Change reloadChange() throws OrmException {
- notes = notesFactory.create(db, project, legacyId);
- change = notes.getChange();
- if (change == null) {
- throw new OrmException("Unable to load change " + legacyId);
+ try {
+ notes = notesFactory.createChecked(db, project, legacyId);
+ } catch (NoSuchChangeException e) {
+ throw new OrmException("Unable to load change " + legacyId, e);
}
+ change = notes.getChange();
setPatchSets(null);
return change;
}