From facf9d55ec82b8cbec63203d2e244fe65f858a72 Mon Sep 17 00:00:00 2001 From: Dave Borowitz Date: Fri, 30 May 2014 12:31:26 -0700 Subject: Populate CodeReviewCommit before passing to MergeValidators The onPreMerge method of MergeValidationListener may reasonably assume that the fields of CodeReviewCommit are populated, for example that commit.notes() will not NPE. The previous ordering of code in MergeOp.validateChangeList() made this assumption false. Change-Id: I9bd9e76bb09a25faf57df7080cdb0c8f878a7471 --- .../main/java/com/google/gerrit/server/git/MergeOp.java | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) 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 0919aa0f67..d92400e02f 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 @@ -520,6 +520,15 @@ public class MergeOp { continue; } + try { + commit.setControl(changeControlFactory.controlFor(chg, + identifiedUserFactory.create(chg.getOwner()))); + } catch (NoSuchChangeException e) { + throw new MergeException("Failed to validate changes", e); + } + commit.setPatchsetId(ps.getId()); + commit.originalOrder = commitOrder++; + MergeValidators mergeValidators = mergeValidatorsFactory.create(); try { mergeValidators.validatePreMerge(repo, commit, destProject, destBranch, ps.getId()); @@ -529,14 +538,6 @@ public class MergeOp { continue; } - try { - commit.setControl(changeControlFactory.controlFor(chg, - identifiedUserFactory.create(chg.getOwner()))); - } catch (NoSuchChangeException e) { - throw new MergeException("Failed to validate changes", e); - } - commit.setPatchsetId(ps.getId()); - commit.originalOrder = commitOrder++; commits.put(changeId, commit); if (branchTip != null) { -- cgit v1.2.3