Merge branch 'stable-2.12' into stable-2.13

* stable-2.12:
  Reindex the change after forcing patchset as draft

Change-Id: I94bd63c01056beb056f5ff8885071936b7619d24
diff --git a/src/main/java/com/googlesource/gerrit/plugins/forcedraft/ForceDraft.java b/src/main/java/com/googlesource/gerrit/plugins/forcedraft/ForceDraft.java
index fe8991c..1554c58 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/forcedraft/ForceDraft.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/forcedraft/ForceDraft.java
@@ -22,6 +22,7 @@
 import com.google.gerrit.reviewdb.client.PatchSet;
 import com.google.gerrit.reviewdb.server.ReviewDb;
 import com.google.gerrit.server.config.GerritServerConfig;
+import com.google.gerrit.server.index.change.ChangeIndexer;
 import com.google.gerrit.sshd.CommandMetaData;
 import com.google.gerrit.sshd.SshCommand;
 import com.google.gerrit.common.data.GlobalCapability;
@@ -30,6 +31,8 @@
 import com.google.inject.Inject;
 import com.google.inject.Provider;
 
+import java.io.IOException;
+
 @RequiresCapability(value = GlobalCapability.ADMINISTRATE_SERVER, scope = CapabilityScope.CORE)
 @CommandMetaData(name = "force-draft", description = "changes patch set to draft")
 public class ForceDraft extends SshCommand {
@@ -54,6 +57,9 @@
   @Inject
   private @GerritServerConfig Config config;
 
+  @Inject
+  private ChangeIndexer changeIndexer;
+
   @Argument(index = 0, required = true, metaVar = "{CHANGE,PATCHSET}",
       usage = "<change, patch set> to be changed to draft")
   private void addPatchSetId(final String token) {
@@ -213,13 +219,14 @@
   /**
    * Updates PatchSet and, if applicable, parent Change.
    *
-   * @throws OrmException
+   * @throws OrmException if an error occur while updating the change in the DB.
+   * @throws IOException if an error occur while indexing the change.
    */
-  private void updatePatchSet() throws OrmException {
+  private void updatePatchSet() throws OrmException, IOException {
     Change.Status changeStatus = parentChange.getStatus();
     if (changeStatus == Change.Status.NEW) {
       setPatchSetAsDraft();
-      updateChange();
+      changeIndexer.index(dbProvider.get(), updateChange());
     } else {
       sendUserInfo("Unable to set patch set as draft, change is "
           + getStatusName(changeStatus));