Fix merge Ib6aa8adbd causing 2x updates of refs/multi-site/version/* Ib6aa8adbd doubled the binding of ProjectVersionRefUpdateImpl to the stream event listener. This combined with the lack of a Singleton annotation caused the triggering of a project version update twice per ref-update. The issue was not present in stable-3.4, because the binding was happening just once and the lack of the singleton did not have consequences. Change-Id: Iee3e74bd79bd49cc9dafe9317734def8c8655ef7
diff --git a/src/main/java/com/googlesource/gerrit/plugins/multisite/event/EventModule.java b/src/main/java/com/googlesource/gerrit/plugins/multisite/event/EventModule.java index 53bcbc0..5e70aca 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/multisite/event/EventModule.java +++ b/src/main/java/com/googlesource/gerrit/plugins/multisite/event/EventModule.java
@@ -20,7 +20,6 @@ import com.google.gerrit.lifecycle.LifecycleModule; import com.google.gerrit.server.events.EventListener; import com.google.inject.Inject; -import com.google.inject.Scopes; import com.google.inject.multibindings.OptionalBinder; import com.googlesource.gerrit.plugins.multisite.Configuration; import com.googlesource.gerrit.plugins.multisite.forwarder.events.EventTopic; @@ -37,8 +36,6 @@ @Override protected void configure() { - DynamicSet.bind(binder(), EventListener.class).to(ProjectVersionRefUpdateImpl.class); - bind(StreamEventPublisherConfig.class) .toInstance( new StreamEventPublisherConfig( @@ -51,10 +48,7 @@ OptionalBinder.newOptionalBinder(binder(), ProjectVersionRefUpdate.class); if (configuration.getSharedRefDbConfiguration().getSharedRefDb().isEnabled()) { DynamicSet.bind(binder(), EventListener.class).to(ProjectVersionRefUpdateImpl.class); - projectVersionRefUpdateBinder - .setBinding() - .to(ProjectVersionRefUpdateImpl.class) - .in(Scopes.SINGLETON); + projectVersionRefUpdateBinder.setBinding().to(ProjectVersionRefUpdateImpl.class); } } }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/multisite/validation/ProjectVersionRefUpdateImpl.java b/src/main/java/com/googlesource/gerrit/plugins/multisite/validation/ProjectVersionRefUpdateImpl.java index d412913..4d2515e 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/multisite/validation/ProjectVersionRefUpdateImpl.java +++ b/src/main/java/com/googlesource/gerrit/plugins/multisite/validation/ProjectVersionRefUpdateImpl.java
@@ -32,6 +32,7 @@ import com.google.gerrit.server.extensions.events.GitReferenceUpdated; import com.google.gerrit.server.git.GitRepositoryManager; import com.google.inject.Inject; +import com.google.inject.Singleton; import com.googlesource.gerrit.plugins.multisite.ProjectVersionLogger; import java.io.IOException; import java.nio.charset.StandardCharsets; @@ -43,6 +44,7 @@ import org.eclipse.jgit.lib.RefUpdate; import org.eclipse.jgit.lib.Repository; +@Singleton public class ProjectVersionRefUpdateImpl implements EventListener, ProjectVersionRefUpdate { private static final FluentLogger logger = FluentLogger.forEnclosingClass(); private static final Set<RefUpdate.Result> SUCCESSFUL_RESULTS =