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
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 0919aa0..d92400e 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 @@
         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 @@
         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) {