Use proper HEAD ref value when creating project

Wrong name of HEAD reference was used when repository was created after
RepositoryNotFoundException. This results in HEAD pointing to HEAD.

Change-Id: I647618fc6d35a5e2ff6bcfeda5084584e591ddda
Signed-off-by: Dariusz Luksza <dariusz@luksza.org>
diff --git a/src/main/java/com/googlesource/gerrit/plugins/replication/PushOne.java b/src/main/java/com/googlesource/gerrit/plugins/replication/PushOne.java
index 8521910..28b5e6b 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/replication/PushOne.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/replication/PushOne.java
@@ -21,7 +21,9 @@
 import com.google.common.collect.LinkedListMultimap;
 import com.google.common.collect.ListMultimap;
 import com.google.common.collect.Sets;
+import com.google.gerrit.extensions.api.changes.NotifyHandling;
 import com.google.gerrit.extensions.events.GitReferenceUpdatedListener;
+import com.google.gerrit.extensions.events.NewProjectCreatedListener;
 import com.google.gerrit.extensions.restapi.AuthException;
 import com.google.gerrit.metrics.Timer1;
 import com.google.gerrit.reviewdb.client.Project;
@@ -399,6 +401,24 @@
       try {
         Ref head = git.exactRef(Constants.HEAD);
         if (replicationQueue.createProject(projectName, head != null ? head.getName() : null)) {
+          NewProjectCreatedListener.Event event =
+              new NewProjectCreatedListener.Event() {
+                @Override
+                public String getProjectName() {
+                  return projectName.get();
+                }
+
+                @Override
+                public String getHeadName() {
+                  return head != null ? head.getTarget().getName() : null;
+                }
+
+                @Override
+                public NotifyHandling getNotify() {
+                  return NotifyHandling.NONE;
+                }
+              };
+          replicationQueue.onNewProjectCreated(event);
           repLog.warn("Missing repository created; retry replication to " + uri);
           pool.reschedule(this, Destination.RetryReason.REPOSITORY_MISSING);
         } else {