Only consider commit objects when creating service user notes
Bug: Issue 8950
Change-Id: Icd9a0e64e071a8eca8aed7c8cb8c5d4945e80d0e
diff --git a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/CreateServiceUserNotes.java b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/CreateServiceUserNotes.java
index e1af041..d4faca9 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/CreateServiceUserNotes.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/CreateServiceUserNotes.java
@@ -16,6 +16,7 @@
import static com.googlesource.gerrit.plugins.serviceuser.CreateServiceUser.KEY_CREATED_BY;
import static com.googlesource.gerrit.plugins.serviceuser.CreateServiceUser.KEY_OWNER;
+import static org.eclipse.jgit.lib.Constants.OBJ_COMMIT;
import com.google.gerrit.extensions.common.AccountInfo;
import com.google.gerrit.reviewdb.client.Project;
@@ -36,6 +37,7 @@
import org.eclipse.jgit.lib.Repository;
import org.eclipse.jgit.notes.NoteMap;
import org.eclipse.jgit.revwalk.RevCommit;
+import org.eclipse.jgit.revwalk.RevObject;
import org.eclipse.jgit.revwalk.RevWalk;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -84,7 +86,11 @@
try (RevWalk rw = new RevWalk(git)) {
try {
- RevCommit n = rw.parseCommit(newObjectId);
+ RevObject obj = rw.peel(rw.parseAny(newObjectId));
+ if (obj.getType() != OBJ_COMMIT) {
+ return;
+ }
+ RevCommit n = (RevCommit) obj;
rw.markStart(n);
if (n.getParentCount() == 1 && n.getParent(0).equals(oldObjectId)) {
rw.markUninteresting(rw.parseCommit(oldObjectId));