diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/notedb/ChangeNotes.java b/gerrit-server/src/main/java/com/google/gerrit/server/notedb/ChangeNotes.java index 90490cb1de..07c3c94171 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/notedb/ChangeNotes.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/notedb/ChangeNotes.java @@ -231,6 +231,26 @@ public class ChangeNotes extends AbstractChangeNotes { change.getProject(), change).load(); } + public List create(ReviewDb db, + Collection changeIds) throws OrmException { + List notes = new ArrayList<>(); + if (migration.enabled()) { + for (Change.Id changeId : changeIds) { + try { + notes.add(createChecked(changeId)); + } catch (NoSuchChangeException e) { + // Ignore missing changes to match Access#get(Iterable) behavior. + } + } + return notes; + } + + for (Change c : db.changes().get(changeIds)) { + notes.add(createFromChangeOnlyWhenNotedbDisabled(c)); + } + return notes; + } + public List create(ReviewDb db, Project.NameKey project, Collection changeIds, Predicate predicate) throws OrmException { 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 5c1821c525..3844608e55 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 @@ -128,8 +128,9 @@ public class ChangeData { if (missing.isEmpty()) { return; } - for (Change change : first.db.changes().get(missing.keySet())) { - missing.get(change.getId()).change = change; + for (ChangeNotes notes : first.notesFactory.create( + first.db, missing.keySet())) { + missing.get(notes.getChangeId()).change = notes.getChange(); } }