MergeOp: pass updated change to setMergedPatchSet Change-Id: Ibce6070c3ac8ba78bbd679da18efb36aeeb14569
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 e4d0de8..987bfa5 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
@@ -813,7 +813,7 @@ return m; } - private void setMerged(final Change c, final ChangeMessage msg) + private void setMerged(Change c, ChangeMessage msg) throws OrmException, IOException { try { db.changes().beginTransaction(c.getId()); @@ -822,7 +822,7 @@ // modified when using the cherry-pick merge strategy. CodeReviewCommit commit = commits.get(c.getId()); PatchSet.Id merged = commit.change.currentPatchSetId(); - setMergedPatchSet(c.getId(), merged); + c = setMergedPatchSet(c.getId(), merged); PatchSetApproval submitter = saveApprovals(c, merged); addMergedMessage(submitter, msg); @@ -844,9 +844,9 @@ indexer.index(db, c); } - private void setMergedPatchSet(Change.Id changeId, final PatchSet.Id merged) + private Change setMergedPatchSet(Change.Id changeId, final PatchSet.Id merged) throws OrmException { - db.changes().atomicUpdate(changeId, new AtomicUpdate<Change>() { + return db.changes().atomicUpdate(changeId, new AtomicUpdate<Change>() { @Override public Change update(Change c) { c.setStatus(Change.Status.MERGED); @@ -879,8 +879,6 @@ // permissions get modified in the future, historical records stay accurate. PatchSetApproval submitter = null; try { - c.setStatus(Change.Status.MERGED); - List<PatchSetApproval> approvals = db.patchSetApprovals().byPatchSet(merged).toList(); Set<PatchSetApproval.Key> toDelete =