Merge "Fix NPE when checking visibility of edits on non-visible changes"

This commit is contained in:
Dave Borowitz 2017-05-02 12:46:57 +00:00 committed by Gerrit Code Review
commit d568934bfb
2 changed files with 13 additions and 7 deletions

View File

@ -264,20 +264,25 @@ public class RefAdvertisementIT extends AbstractDaemonTest {
}
@Test
public void uploadPackSubsetOfBranchesVisibleWithEditForOtherUser() throws Exception {
public void uploadPackSubsetOfBranchesAndEditsVisibleWithViewPrivateChanges() throws Exception {
allow(Permission.READ, REGISTERED_USERS, "refs/heads/master");
allow(Permission.VIEW_PRIVATE_CHANGES, REGISTERED_USERS, "refs/*");
Change c = notesFactory.createChecked(db, project, c1.getId()).getChange();
String changeId = c.getKey().get();
Change change1 = notesFactory.createChecked(db, project, c1.getId()).getChange();
String changeId1 = change1.getKey().get();
Change change2 = notesFactory.createChecked(db, project, c2.getId()).getChange();
String changeId2 = change2.getKey().get();
// Admin's edit is visible.
// Admin's edit on change1 is visible.
setApiUser(admin);
gApi.changes().id(changeId).edit().create();
gApi.changes().id(changeId1).edit().create();
// Admin's edit on change2 is not visible since user cannot see the change.
gApi.changes().id(changeId2).edit().create();
// User's edit is visible.
setApiUser(user);
gApi.changes().id(changeId).edit().create();
gApi.changes().id(changeId1).edit().create();
assertUploadPackRefs(
"HEAD",

View File

@ -231,7 +231,8 @@ public class VisibleRefFilter extends AbstractAdvertiseRefsHook {
}
if (id != null) {
return (userEditPrefix != null && name.startsWith(userEditPrefix) && visible(id))
|| projectCtl.controlForRef(visibleChanges.get(id)).isEditVisible();
|| (visibleChanges.containsKey(id)
&& projectCtl.controlForRef(visibleChanges.get(id)).isEditVisible());
}
return false;
}