Merge "Do not invoke SubmoduleOp when no direct push in ReceiveCommits"
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 1206156..e4bc86f 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
@@ -658,12 +658,14 @@
     }
 
     // Update superproject gitlinks if required.
-    try (MergeOpRepoManager orm = ormProvider.get()) {
-      orm.setContext(db, TimeUtil.nowTs(), user, receiveId);
-      SubmoduleOp op = subOpFactory.create(branches, orm);
-      op.updateSuperProjects();
-    } catch (SubmoduleException e) {
-      logError("Can't update the superprojects", e);
+    if (!branches.isEmpty()) {
+      try (MergeOpRepoManager orm = ormProvider.get()) {
+        orm.setContext(db, TimeUtil.nowTs(), user, receiveId);
+        SubmoduleOp op = subOpFactory.create(branches, orm);
+        op.updateSuperProjects();
+      } catch (SubmoduleException e) {
+        logError("Can't update the superprojects", e);
+      }
     }
 
     closeProgress.end();