summaryrefslogtreecommitdiffstats
path: root/container-core
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@verizonmedia.com>2021-02-15 14:29:36 +0100
committerBjørn Christian Seime <bjorncs@verizonmedia.com>2021-02-15 14:29:36 +0100
commit0fe2eda14d9c41051ebfa3435ef9d17a9b993f42 (patch)
tree40e62f65106021c98fa4f79357e792ad40233678 /container-core
parentab52a4510164d4843c979bb94d43edad0a2274e8 (diff)
Use singletons for all fallback components
Diffstat (limited to 'container-core')
-rw-r--r--container-core/src/main/java/com/yahoo/container/core/config/HandlersConfigurerDi.java9
1 files changed, 7 insertions, 2 deletions
diff --git a/container-core/src/main/java/com/yahoo/container/core/config/HandlersConfigurerDi.java b/container-core/src/main/java/com/yahoo/container/core/config/HandlersConfigurerDi.java
index 0fd31db67f6..05f34a27bc9 100644
--- a/container-core/src/main/java/com/yahoo/container/core/config/HandlersConfigurerDi.java
+++ b/container-core/src/main/java/com/yahoo/container/core/config/HandlersConfigurerDi.java
@@ -48,6 +48,9 @@ public class HandlersConfigurerDi {
private static final Logger log = Logger.getLogger(HandlersConfigurerDi.class.getName());
+ private static final Executor fallbackExecutor = Executors.newCachedThreadPool(
+ ThreadFactoryFactory.getThreadFactory("HandlersConfigurerDI"));
+
private final com.yahoo.container.Container vespaContainer;
private final Container container;
@@ -138,10 +141,12 @@ public class HandlersConfigurerDi {
return discInjector.createChildInjector(new AbstractModule() {
@Override
protected void configure() {
+ // Provide a singleton instance for all component fallbacks,
+ // otherwise fallback injection may lead to a cascade of components requiring reconstruction.
bind(com.yahoo.container.Container.class).toInstance(vespaContainer);
bind(com.yahoo.statistics.Statistics.class).toInstance(Statistics.nullImplementation);
- bind(AccessLog.class).toInstance(new AccessLog(new ComponentRegistry<>()));
- bind(Executor.class).toInstance(Executors.newCachedThreadPool(ThreadFactoryFactory.getThreadFactory("HandlersConfigurerDI")));
+ bind(AccessLog.class).toInstance(AccessLog.VOID_INSTANCE);
+ bind(Executor.class).toInstance(fallbackExecutor);
if (vespaContainer.getFileAcquirer() != null)
bind(com.yahoo.filedistribution.fileacquirer.FileAcquirer.class).toInstance(vespaContainer.getFileAcquirer());
}