summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDariusz Luksza <dariusz@luksza.org>2015-07-14 12:03:16 +0200
committerDavid Pursehouse <dpursehouse@collab.net>2017-09-06 23:45:15 +0000
commite145010de7911623c98e6111537ffa4997d1a82e (patch)
treed15a3c3c2129e29416c76d741c0a63d38cec7bc7
parent643d635a4502e2a2df6cb02edade88bad3fd953a (diff)
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>
-rw-r--r--src/main/java/com/googlesource/gerrit/plugins/replication/PushOne.java20
1 files changed, 20 insertions, 0 deletions
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.base.Throwables;
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 @@ class PushOne implements ProjectRunnable, CanceledWhileRunning {
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 {