diff options
author | David Pursehouse <dpursehouse@collab.net> | 2016-07-06 11:29:18 +0900 |
---|---|---|
committer | David Pursehouse <dpursehouse@collab.net> | 2016-07-06 11:49:59 +0900 |
commit | a0157917f266606b3bc5bbe865dca569c15489cc (patch) | |
tree | 8b0b4edcae666074b299f51cee6d9ba1f8b3b704 | |
parent | 9775399ea27b1e0687a357a20eded6f64e48c7e8 (diff) |
ReceiveCommits: Prevent NPE setting updated change list for edit commit
When pushing an amended commit with the %edit option, the ReplaceRequest
has null info, which causes NPE when trying to use it to get the subject
of the new patch set. This results in the message:
"internal error while processing changes"
to be shown to the user instead of the "Updated Changes" list.
Use the ReplaceRequest's newCommit instead.
Also update AbstractPushForReview#testPushForMasterAsEdit to confirm that
the expected "Updated Changes" output is present.
Bug: Issue 4236
Change-Id: I82983219a3220d21f043fdc662f561e291fc0746
-rw-r--r-- | gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/git/AbstractPushForReview.java | 4 | ||||
-rw-r--r-- | gerrit-server/src/main/java/com/google/gerrit/server/git/ReceiveCommits.java | 2 |
2 files changed, 5 insertions, 1 deletions
diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/git/AbstractPushForReview.java b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/git/AbstractPushForReview.java index 34679ddc25..f64a8a2f70 100644 --- a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/git/AbstractPushForReview.java +++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/git/AbstractPushForReview.java @@ -176,6 +176,10 @@ public abstract class AbstractPushForReview extends AbstractDaemonTest { r.assertOkStatus(); edit = getEdit(r.getChangeId()); assertThat(edit).isNotNull(); + r.assertMessage("Updated Changes:\n " + + canonicalWebUrl.get() + + r.getChange().getId() + + " " + edit.commit.subject + " [EDIT]\n"); } @Test 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 e618fcb38e..a185c9e47e 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 @@ -722,7 +722,7 @@ public class ReceiveCommits { boolean edit = magicBranch != null && magicBranch.edit; for (ReplaceRequest u : updated) { addMessage(formatChangeUrl(canonicalWebUrl, u.change, - u.info.getSubject(), edit)); + u.newCommit.getShortMessage(), edit)); } addMessage(""); } |