diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/ssh/QueryIT.java b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/ssh/QueryIT.java index ce0787f011..ca45e7c31c 100644 --- a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/ssh/QueryIT.java +++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/ssh/QueryIT.java @@ -26,6 +26,7 @@ import com.google.gerrit.acceptance.SshSession; import com.google.gerrit.acceptance.UseSsh; import com.google.gerrit.extensions.api.changes.AddReviewerInput; import com.google.gerrit.extensions.api.changes.ReviewInput; +import com.google.gerrit.extensions.client.ListChangesOption; import com.google.gerrit.extensions.client.Side; import com.google.gerrit.server.data.ChangeAttribute; import com.google.gson.Gson; @@ -310,6 +311,19 @@ public class QueryIT extends AbstractDaemonTest { userSession.close(); } + @Test + public void allChangeOptionsAreServedWithoutExceptions() throws Exception { + PushOneCommit.Result r = createChange(); + // Merge the change so that the result has more data and potentially went through more + // computation while formatting the output, such as labels, reviewers etc. + merge(r); + for (ListChangesOption option : ListChangesOption.values()) { + assertThat(gApi.changes().query(r.getChangeId()).withOption(option).get()) + .named("Option: " + option) + .hasSize(1); + } + } + private List executeSuccessfulQuery(String params, SshSession session) throws Exception { String rawResponse = session.exec("gerrit query --format=JSON " + params); diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/change/ChangeJson.java b/gerrit-server/src/main/java/com/google/gerrit/server/change/ChangeJson.java index 63f8138c6d..6bfb07ddec 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/change/ChangeJson.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/change/ChangeJson.java @@ -1074,7 +1074,7 @@ public class ChangeJson { for (PatchSetApproval psa : approvalsUtil.byPatchSetUser( db.get(), - cd.notes(), + lazyLoad ? cd.notes() : notesFactory.createFromIndexedChange(cd.change()), user, cd.change().currentPatchSetId(), user.getAccountId(),