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()));