Send missing dependencies to owners if they are the only reviewer
If the owner of the change is the only reviewer but the change
can't be submitted due to a missing dependency, and we've waited
the full window, send the email anyway.
Change-Id: Iaab4b96b85961e56ea3eaf627d81ab4003a2fe97
Signed-off-by: Shawn O. Pearce <sop@google.com>
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java b/gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java
index f2431cf..811f70c 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java
@@ -958,7 +958,7 @@
txt = m.toString();
}
- sendMergeFail(c, message(c, txt), false);
+ sendMergeFail(c, message(c, txt), false, false);
} else {
// It is impossible to submit this change as-is. The author
@@ -1154,10 +1154,11 @@
}
private void setNew(Change c, ChangeMessage msg) {
- sendMergeFail(c, msg, true);
+ sendMergeFail(c, msg, true, true);
}
- private void sendMergeFail(Change c, ChangeMessage msg, final boolean makeNew) {
+ private void sendMergeFail(Change c, ChangeMessage msg,
+ final boolean makeNew, final boolean useSubmitter) {
try {
schema.changeMessages().insert(Collections.singleton(msg));
} catch (OrmException err) {
@@ -1189,10 +1190,12 @@
}
try {
- final PatchSetApproval submitter = getSubmitter(c.currentPatchSetId());
final MergeFailSender cm = mergeFailSenderFactory.create(c);
- if (submitter != null) {
- cm.setFrom(submitter.getAccountId());
+ if (useSubmitter) {
+ final PatchSetApproval submitter = getSubmitter(c.currentPatchSetId());
+ if (submitter != null) {
+ cm.setFrom(submitter.getAccountId());
+ }
}
cm.setReviewDb(schema);
cm.setPatchSet(schema.patchSets().get(c.currentPatchSetId()));