From e3106b3d051367fb9aa411288a8a1aa5f9524e93 Mon Sep 17 00:00:00 2001 From: Jan Opacki Date: Sun, 2 Jun 2013 19:31:34 +0200 Subject: [PATCH] Fix push to refs/drafts creates a change in NEW state Commit 50a618ab15ca71e4bee3f9bccc98373f2f9b81ea does not set the draft status of a change/patch set correctly. Fix removes 'draft' field from ChangeInserter and sets the status directly on a change and a patch set. Adds a call to setDraft() if pushed to refs/drafts. Change-Id: I84d0dfccdcb33940e8b3af24d5ad5d35eb68b55e --- .../google/gerrit/server/change/ChangeInserter.java | 10 +++------- .../com/google/gerrit/server/git/ReceiveCommits.java | 3 +++ 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/change/ChangeInserter.java b/gerrit-server/src/main/java/com/google/gerrit/server/change/ChangeInserter.java index cc32134185..0104948c70 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/change/ChangeInserter.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/change/ChangeInserter.java @@ -65,7 +65,6 @@ public class ChangeInserter { private RequestScopePropagator requestScopePropagator; private ChangeMessage changeMessage; private Set reviewers; - private boolean draft; @Inject ChangeInserter(Provider dbProvider, @@ -95,10 +94,6 @@ public class ChangeInserter { patchSet.setCreatedOn(change.getCreatedOn()); patchSet.setUploader(change.getOwner()); patchSet.setRevision(new RevId(commit.name())); - if (draft) { - change.setStatus(Change.Status.DRAFT); - patchSet.setDraft(true); - } patchSetInfo = patchSetInfoFactory.get(commit, patchSet.getId()); change.setCurrentPatchSet(patchSetInfo); ChangeUtil.computeSortKey(change); @@ -119,8 +114,9 @@ public class ChangeInserter { return this; } - public ChangeInserter setDraft(boolean draft) { - this.draft = draft; + public ChangeInserter setDraft() { + change.setStatus(Change.Status.DRAFT); + patchSet.setDraft(true); return this; } diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/git/ReceiveCommits.java b/gerrit-server/src/main/java/com/google/gerrit/server/git/ReceiveCommits.java index 8e4ba0c914..83bf91920c 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/git/ReceiveCommits.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/git/ReceiveCommits.java @@ -1476,6 +1476,9 @@ public class ReceiveCommits { change.setTopic(magicBranch.topic); ins = changeInserterFactory.create(ctl, change, c) .setRequestScopePropagator(requestScopePropagator); + if (magicBranch.isDraft()) { + ins.setDraft(); + } cmd = new ReceiveCommand(ObjectId.zeroId(), c, ins.getPatchSet().getRefName()); }