ReceiveCommits: Fix NPE when pushing to refs/changes/n
Change-Id: Iccf24e5262dcfe8e0fde0b63e1ef5411d7266592
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 1d21cad..e65d51e 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
@@ -202,6 +202,18 @@
}
@Test
+ public void testPushNewPatchsetToRefsChanges() throws GitAPIException,
+ IOException, OrmException {
+ PushOneCommit.Result r = pushTo("refs/for/master");
+ r.assertOkStatus();
+ PushOneCommit push =
+ pushFactory.create(db, admin.getIdent(), PushOneCommit.SUBJECT,
+ "b.txt", "anotherContent", r.getChangeId());
+ r = push.to(git, "refs/changes/" + r.getChange().change().getId().get());
+ r.assertOkStatus();
+ }
+
+ @Test
public void testPushForMasterWithApprovals_MissingLabel() throws GitAPIException,
IOException {
PushOneCommit.Result r = pushTo("refs/for/master/%l=Verify");
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 cc2919d..81833fe 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
@@ -2041,7 +2041,7 @@
@Override
public PatchSet.Id call() throws OrmException, IOException, NoSuchChangeException {
try {
- if (magicBranch.edit) {
+ if (magicBranch != null && magicBranch.edit) {
return upsertEdit();
} else if (caller == Thread.currentThread()) {
return insertPatchSet(db);