Fix notifications for comments on private changes
Change-Id: I2c660ca8b1dc2d36458fb6cfce369f2cf7c043db
diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/server/project/ProjectWatchIT.java b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/server/project/ProjectWatchIT.java
index 72c196e4..2372d89 100644
--- a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/server/project/ProjectWatchIT.java
+++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/server/project/ProjectWatchIT.java
@@ -166,7 +166,7 @@
nc.addEmail(addr);
nc.setName("team");
nc.setHeader(NotifyConfig.Header.TO);
- nc.setTypes(EnumSet.of(NotifyType.NEW_CHANGES));
+ nc.setTypes(EnumSet.of(NotifyType.NEW_CHANGES, NotifyType.ALL_COMMENTS));
ProjectConfig cfg = projectCache.checkedGet(project).getConfig();
cfg.putNotifyConfig("team", nc);
@@ -180,6 +180,13 @@
r.assertOkStatus();
assertThat(sender.getMessages()).isEmpty();
+
+ setApiUser(admin);
+ ReviewInput in = new ReviewInput();
+ in.message = "comment";
+ gApi.changes().id(r.getChangeId()).current().review(in);
+
+ assertThat(sender.getMessages()).isEmpty();
}
@Test
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/mail/send/CommentSender.java b/gerrit-server/src/main/java/com/google/gerrit/server/mail/send/CommentSender.java
index ddea42e..e45c7d0 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/mail/send/CommentSender.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/mail/send/CommentSender.java
@@ -155,7 +155,7 @@
}
if (notify.compareTo(NotifyHandling.ALL) >= 0) {
bccStarredBy();
- includeWatchers(NotifyType.ALL_COMMENTS, !patchSet.isDraft());
+ includeWatchers(NotifyType.ALL_COMMENTS, !patchSet.isDraft() && !change.isPrivate());
}
removeUsersThatIgnoredTheChange();