Merge "Mark mergeTip as Nullable in ChangeMessageModifier"
diff --git a/java/com/google/gerrit/server/git/ChangeMessageModifier.java b/java/com/google/gerrit/server/git/ChangeMessageModifier.java
index 580c0b9..3424477 100644
--- a/java/com/google/gerrit/server/git/ChangeMessageModifier.java
+++ b/java/com/google/gerrit/server/git/ChangeMessageModifier.java
@@ -14,6 +14,7 @@
 
 package com.google.gerrit.server.git;
 
+import com.google.gerrit.common.Nullable;
 import com.google.gerrit.entities.BranchNameKey;
 import com.google.gerrit.extensions.annotations.ExtensionPoint;
 import org.eclipse.jgit.revwalk.RevCommit;
@@ -42,10 +43,13 @@
    * @param original the commit of the change being submitted. <b>Note that its commit message may
    *     be different than newCommitMessage argument.</b>
    * @param mergeTip the current HEAD of the destination branch, which will be a parent of a new
-   *     commit being generated
+   *     commit being generated. mergeTip can be null if the destination branch does not yet exist.
    * @param destination the branch onto which the change is being submitted
    * @return a new not null commit message.
    */
   String onSubmit(
-      String newCommitMessage, RevCommit original, RevCommit mergeTip, BranchNameKey destination);
+      String newCommitMessage,
+      RevCommit original,
+      @Nullable RevCommit mergeTip,
+      BranchNameKey destination);
 }
diff --git a/java/com/google/gerrit/server/git/MergeUtil.java b/java/com/google/gerrit/server/git/MergeUtil.java
index 3a4d407..99cb9b0 100644
--- a/java/com/google/gerrit/server/git/MergeUtil.java
+++ b/java/com/google/gerrit/server/git/MergeUtil.java
@@ -31,6 +31,7 @@
 import com.google.common.collect.Sets;
 import com.google.common.flogger.FluentLogger;
 import com.google.gerrit.common.FooterConstants;
+import com.google.gerrit.common.Nullable;
 import com.google.gerrit.entities.Account;
 import com.google.gerrit.entities.BooleanProjectConfig;
 import com.google.gerrit.entities.BranchNameKey;
@@ -630,7 +631,7 @@
    * @return new message
    */
   public String createCommitMessageOnSubmit(
-      RevCommit n, RevCommit mergeTip, ChangeNotes notes, PatchSet.Id id) {
+      RevCommit n, @Nullable RevCommit mergeTip, ChangeNotes notes, PatchSet.Id id) {
     return commitMessageGenerator.generate(
         n, mergeTip, notes.getChange().getDest(), createDetailedCommitMessage(n, notes, id));
   }
diff --git a/java/com/google/gerrit/server/git/PluggableCommitMessageGenerator.java b/java/com/google/gerrit/server/git/PluggableCommitMessageGenerator.java
index 804a218..1f5a330 100644
--- a/java/com/google/gerrit/server/git/PluggableCommitMessageGenerator.java
+++ b/java/com/google/gerrit/server/git/PluggableCommitMessageGenerator.java
@@ -18,6 +18,7 @@
 import static java.util.Objects.requireNonNull;
 
 import com.google.common.flogger.FluentLogger;
+import com.google.gerrit.common.Nullable;
 import com.google.gerrit.entities.BranchNameKey;
 import com.google.gerrit.extensions.registration.DynamicSet;
 import com.google.gerrit.extensions.registration.Extension;
@@ -41,7 +42,10 @@
    * modify the message.
    */
   public String generate(
-      RevCommit original, RevCommit mergeTip, BranchNameKey dest, String originalMessage) {
+      RevCommit original,
+      @Nullable RevCommit mergeTip,
+      BranchNameKey dest,
+      String originalMessage) {
     requireNonNull(original.getRawBuffer());
     if (mergeTip != null) {
       requireNonNull(mergeTip.getRawBuffer());