Fix issue with indexing tasks queue IndexEventHandler contains a mechanism to prevent multiple indexing task from being queued for the same id. That mechanism is based on a shared queue instance. Before this change IndexEventHandler wasn't a singleton so for each event a new instance was created and each event had its own instance of the queue. Bug: Issue 9941 Change-Id: Id9a8f288816fa56389aae65e3c29aa7ca40410cb
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/index/IndexModule.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/index/IndexModule.java index 9d0d03d..4a25fc8 100644 --- a/src/main/java/com/ericsson/gerrit/plugins/highavailability/index/IndexModule.java +++ b/src/main/java/com/ericsson/gerrit/plugins/highavailability/index/IndexModule.java
@@ -36,7 +36,9 @@ .toProvider(ForwardedIndexExecutorProvider.class); bind(IndexEventLocks.class).in(Scopes.SINGLETON); listener().to(IndexExecutorProvider.class); - DynamicSet.bind(binder(), ChangeIndexedListener.class).to(IndexEventHandler.class); + DynamicSet.bind(binder(), ChangeIndexedListener.class) + .to(IndexEventHandler.class) + .in(Scopes.SINGLETON); DynamicSet.bind(binder(), AccountIndexedListener.class).to(IndexEventHandler.class); DynamicSet.bind(binder(), GroupIndexedListener.class).to(IndexEventHandler.class); DynamicSet.bind(binder(), ProjectIndexedListener.class).to(IndexEventHandler.class);