Merge "TopMenu extension: specify which Module is needed"
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/ChangeUtil.java b/gerrit-server/src/main/java/com/google/gerrit/server/ChangeUtil.java
index 07ecce2..fd2910f 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/ChangeUtil.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/ChangeUtil.java
@@ -375,7 +375,6 @@
       newPatchSet.setCreatedOn(new Timestamp(now.getTime()));
       newPatchSet.setUploader(user.getAccountId());
       newPatchSet.setRevision(new RevId(newCommit.name()));
-      newPatchSet.setDraft(originalPS.isDraft());
 
       final String msg =
           "Patch Set " + newPatchSet.getPatchSetId()
@@ -387,6 +386,7 @@
           .setMessage(msg)
           .setCopyLabels(true)
           .setValidatePolicy(RECEIVE_COMMITS)
+          .setDraft(originalPS.isDraft())
           .insert();
 
       return change.getId();
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/change/CherryPickChange.java b/gerrit-server/src/main/java/com/google/gerrit/server/change/CherryPickChange.java
index 1e748d9..e129432 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/change/CherryPickChange.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/change/CherryPickChange.java
@@ -196,8 +196,10 @@
     final PatchSetInserter inserter = patchSetInserterFactory
         .create(git, revWalk, refControl, currentUser, change, cherryPickCommit);
     final PatchSet.Id newPatchSetId = inserter.getPatchSetId();
+    final PatchSet current = db.patchSets().get(change.currentPatchSetId());
     inserter
       .setMessage("Uploaded patch set " + newPatchSetId.get() + ".")
+      .setDraft(current.isDraft())
       .insert();
     return change.getId();
   }
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 bae0990..f20de2d 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
@@ -1137,10 +1137,10 @@
         db.changeMessages().insert(Collections.singleton(msg));
         new ApprovalsUtil(db).syncChangeStatus(change);
         db.commit();
+        indexer.index(change);
       }
     } finally {
       db.rollback();
     }
-    indexer.index(change);
   }
 }