From e92ab4bf16fae0691d0ef90344b1e43fecc5190b Mon Sep 17 00:00:00 2001 From: Dave Borowitz Date: Fri, 21 Oct 2016 17:07:00 -0400 Subject: [PATCH] ReceiveCommitsAdvertiseRefsHook: Request change field We requested only the patch set field in I198c7b9c, based on only the patch set field being used in the body of advertiseOpenChanges. Unfortunately, the change field is also implicitly required in order to check visibility in ChangeIsVisibleToPredicate#match. Change-Id: I177109ed9cdb29724bbe3a9f08eae1a4a8cd716f --- .../server/git/ReceiveCommitsAdvertiseRefsHook.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/git/ReceiveCommitsAdvertiseRefsHook.java b/gerrit-server/src/main/java/com/google/gerrit/server/git/ReceiveCommitsAdvertiseRefsHook.java index 5df6caf7b5..5871299b83 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/git/ReceiveCommitsAdvertiseRefsHook.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/git/ReceiveCommitsAdvertiseRefsHook.java @@ -109,13 +109,20 @@ public class ReceiveCommitsAdvertiseRefsHook implements AdvertiseRefsHook { r, advertiseOpenChanges(allPatchSets)); } + private static final ImmutableSet OPEN_CHANGES_FIELDS = + ImmutableSet.of( + // Required for ChangeIsVisibleToPrdicate. + ChangeField.CHANGE.getName(), + // Required during advertiseOpenChanges. + ChangeField.PATCH_SET.getName()); + private Set advertiseOpenChanges(Set allPatchSets) { // Advertise some recent open changes, in case a commit is based on one. int limit = 32; try { Set r = Sets.newHashSetWithExpectedSize(limit); for (ChangeData cd : queryProvider.get() - .setRequestedFields(ImmutableSet.of(ChangeField.PATCH_SET.getName())) + .setRequestedFields(OPEN_CHANGES_FIELDS) .enforceVisibility(true) .setLimit(limit) .byProjectOpen(projectName)) {