Merge "Revert "Upstream +2 should not override merge conflict -2.""
diff --git a/src/main/java/com/googlesource/gerrit/plugins/automerger/ConfigLoader.java b/src/main/java/com/googlesource/gerrit/plugins/automerger/ConfigLoader.java
index e6e298d..2ecb88b 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/automerger/ConfigLoader.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/automerger/ConfigLoader.java
@@ -240,18 +240,10 @@
     return message;
   }
 
-  public short getMaxAutomergeVote() throws ConfigInvalidException {
-    return (short) getConfig().getInt("global", "maxAutomergeVote", 2);
-  }
-
   public short getMinAutomergeVote() throws ConfigInvalidException {
     return (short) getConfig().getInt("global", "minAutomergeVote", -2);
   }
 
-  public boolean maxAutomergeVoteDisabled() throws ConfigInvalidException {
-    return getConfig().getBoolean("global", "disableMaxAutomergeVote", false);
-  }
-
   public boolean minAutomergeVoteDisabled() throws ConfigInvalidException {
     return getConfig().getBoolean("global", "disableMinAutomergeVote", false);
   }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/automerger/DownstreamCreator.java b/src/main/java/com/googlesource/gerrit/plugins/automerger/DownstreamCreator.java
index 5a8e380..fae8344 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/automerger/DownstreamCreator.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/automerger/DownstreamCreator.java
@@ -521,12 +521,8 @@
       }
 
       ChangeApi downstreamChange = gApi.changes().create(downstreamChangeInput);
-
-      // Vote maxAutomergeVote on the change so we know it was successful.
-      if (!config.maxAutomergeVoteDisabled()) {
-        updateVote(
-            downstreamChange.get(), config.getAutomergeLabel(), config.getMaxAutomergeVote());
-      }
+      tagChange(downstreamChange.get(), "Automerger change created!");
+      
     }
   }
 
@@ -658,10 +654,22 @@
       log.error("Automerger could not set label, but still continuing.", e);
     }
   }
+  
+  private void tagChange(ChangeInfo change, String message) throws RestApiException {
+    ReviewInput reviewInput = new ReviewInput();
+    reviewInput.message(message);
+    reviewInput.notify = NotifyHandling.NONE;
+    reviewInput.tag = AUTOMERGER_TAG;
+    try {
+      gApi.changes().id(change.id).revision(CURRENT).review(reviewInput);
+    } catch (AuthException e) {
+      log.error("Automerger could not set label, but still continuing.", e);
+    }
+  }
 
   private void updateDownstreamMerge(
       String newParentRevision, String upstreamSubject, Integer sourceNum, boolean doMerge)
-      throws RestApiException, ConfigInvalidException {
+      throws RestApiException {
     MergeInput mergeInput = new MergeInput();
     mergeInput.source = newParentRevision;
 
@@ -685,10 +693,7 @@
       originalChange.restore(restoreInput);
     }
 
-    ChangeInfo downstreamChange = originalChange.createMergePatchSet(mergePatchSetInput);
-    if (!config.maxAutomergeVoteDisabled()) {
-      updateVote(downstreamChange, config.getAutomergeLabel(), config.getMaxAutomergeVote());
-    }
+    originalChange.createMergePatchSet(mergePatchSetInput);
   }
 
   private String getPreviousRevision(ChangeApi change, int currentPatchSetNumber)
diff --git a/src/main/resources/Documentation/config.md b/src/main/resources/Documentation/config.md
index d4b0a38..a1752b1 100644
--- a/src/main/resources/Documentation/config.md
+++ b/src/main/resources/Documentation/config.md
@@ -31,16 +31,6 @@
   When the automerger detects a merge conflict from one branch to another, it
   will vote minAutomergeVote on this label.
 
-global.maxAutomergeVote
-: Value to vote on a successful automerge.
-
-  When the automerger succeeds in merging downstream, it will vote
-  maxAutomergeVote on the downstream change. The original change uploaded by
-  the user will have a vote of 0, so that it can be easily programatically
-  distinguished from the otheres.
-
-  Will not vote if disableMaxAutomergeVote is true.
-
 global.minAutomergeVote
 : Value to vote on a failed automerge.
 
@@ -49,12 +39,6 @@
 
   Will not vote if disableMinAutomergeVote is true.
 
-global.disableMaxAutomergeVote
-: Whether to vote on a successful automerge.
-
-  If true, will not vote maxAutomergeVote on a successful downstream merge.
-  Defaults to false.
-
 global.disableMinAutomergeVote
 : Whether to vote on a failed automerge.
 
diff --git a/src/test/java/com/googlesource/gerrit/plugins/automerger/ConfigLoaderIT.java b/src/test/java/com/googlesource/gerrit/plugins/automerger/ConfigLoaderIT.java
index 1a041b7..d692e95 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/automerger/ConfigLoaderIT.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/automerger/ConfigLoaderIT.java
@@ -204,30 +204,12 @@
   }
 
   @Test
-  public void getMaxAutomergeVoteTest() throws Exception {
-    defaultSetup("alternate.config");
-    assertThat(configLoader.getMaxAutomergeVote()).isEqualTo(5);
-  }
-
-  @Test
   public void getMinAutomergeVoteTest() throws Exception {
     defaultSetup("alternate.config");
     assertThat(configLoader.getMinAutomergeVote()).isEqualTo(-3);
   }
 
   @Test
-  public void maxAutomergeVoteDisabledTest() throws Exception {
-    defaultSetup("automerger.config");
-    assertThat(configLoader.maxAutomergeVoteDisabled()).isFalse();
-  }
-
-  @Test
-  public void maxAutomergeVoteDisabledTest_isDisabled() throws Exception {
-    defaultSetup("alternate.config");
-    assertThat(configLoader.maxAutomergeVoteDisabled()).isTrue();
-  }
-
-  @Test
   public void minAutomergeVoteDisabledTest() throws Exception {
     defaultSetup("automerger.config");
     assertThat(configLoader.minAutomergeVoteDisabled()).isFalse();
diff --git a/src/test/java/com/googlesource/gerrit/plugins/automerger/DownstreamCreatorIT.java b/src/test/java/com/googlesource/gerrit/plugins/automerger/DownstreamCreatorIT.java
index 552683d..cd36f2d 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/automerger/DownstreamCreatorIT.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/automerger/DownstreamCreatorIT.java
@@ -83,25 +83,24 @@
             .withOption(ListChangesOption.CURRENT_REVISION)
             .get();
     assertThat(changesInTopic).hasSize(3);
-    // +2 and submit
-    merge(result);
+    
     List<ChangeInfo> sortedChanges = sortedChanges(changesInTopic);
 
     ChangeInfo dsOneChangeInfo = sortedChanges.get(0);
     assertThat(dsOneChangeInfo.branch).isEqualTo("ds_one");
     ChangeApi dsOneChange = gApi.changes().id(dsOneChangeInfo._number);
-    assertThat(getVote(dsOneChange, "Code-Review").value).isEqualTo(2);
+    assertThat(getVote(dsOneChange, "Code-Review").value).isEqualTo(0);
     assertThat(getVote(dsOneChange, "Code-Review").tag).isEqualTo("autogenerated:Automerger");
 
     ChangeInfo dsTwoChangeInfo = sortedChanges.get(1);
     assertThat(dsTwoChangeInfo.branch).isEqualTo("ds_two");
     ChangeApi dsTwoChange = gApi.changes().id(dsTwoChangeInfo._number);
-    assertThat(getVote(dsTwoChange, "Code-Review").value).isEqualTo(2);
+    assertThat(getVote(dsTwoChange, "Code-Review").value).isEqualTo(0);
     assertThat(getVote(dsTwoChange, "Code-Review").tag).isEqualTo("autogenerated:Automerger");
 
     ChangeInfo masterChangeInfo = sortedChanges.get(2);
     ChangeApi masterChange = gApi.changes().id(masterChangeInfo._number);
-    assertThat(getVote(masterChange, "Code-Review").value).isEqualTo(2);
+    assertThat(getVote(masterChange, "Code-Review").value).isEqualTo(0);
     assertThat(getVote(masterChange, "Code-Review").tag).isEqualTo(null);
     assertThat(masterChangeInfo.branch).isEqualTo("master");
 
@@ -113,6 +112,12 @@
         .isEqualTo("[automerger] " + masterSubject + " am: " + shortMasterSha);
     assertThat(dsTwoChangeInfo.subject)
         .isEqualTo("[automerger] " + masterSubject + " am: " + shortMasterSha);
+    
+    // +2 and submit
+    merge(result);
+    assertThat(getVote(masterChange, "Code-Review").value).isEqualTo(2);
+    assertThat(getVote(dsOneChange, "Code-Review").value).isEqualTo(2);
+    assertThat(getVote(dsTwoChange, "Code-Review").value).isEqualTo(2);
   }
 
   @Test
diff --git a/src/test/resources/com/googlesource/gerrit/plugins/automerger/alternate.config b/src/test/resources/com/googlesource/gerrit/plugins/automerger/alternate.config
index ed3c829..19d69c1 100644
--- a/src/test/resources/com/googlesource/gerrit/plugins/automerger/alternate.config
+++ b/src/test/resources/com/googlesource/gerrit/plugins/automerger/alternate.config
@@ -12,9 +12,7 @@
   blankMerge = .*DO NOT MERGE.*
   manifestFile = default.xml
   manifestProject = platform/manifest
-  maxAutomergeVote = 5
   minAutomergeVote = -3
-  disableMaxAutomergeVote = true
   ignoreProjects = platform/ignore/me
   conflictMessage = line1\n\
 line2\n\