summaryrefslogtreecommitdiffstats
path: root/container-core/src/main/java/com/yahoo/container/core/config/HandlersConfigurerDi.java
diff options
context:
space:
mode:
Diffstat (limited to 'container-core/src/main/java/com/yahoo/container/core/config/HandlersConfigurerDi.java')
-rw-r--r--container-core/src/main/java/com/yahoo/container/core/config/HandlersConfigurerDi.java15
1 files changed, 10 insertions, 5 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 be4bc556dde..7148ed6fb45 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
@@ -71,7 +71,8 @@ public class HandlersConfigurerDi {
this.vespaContainer = vespaContainer;
container = new Container(subscriberFactory, configId, deconstructor, osgiWrapper);
- waitForNextComponentGeneration(discInjector, true);
+ Runnable cleanupTask = waitForNextComponentGeneration(discInjector, true);
+ cleanupTask.run();
}
private static class ContainerAndDiOsgi extends OsgiImpl implements OsgiWrapper {
@@ -106,11 +107,15 @@ public class HandlersConfigurerDi {
/**
* Wait for new config to arrive and produce the new graph
+ * @return Task for deconstructing previous component graph and bundles
*/
- public void waitForNextComponentGeneration(Injector discInjector, boolean isInitializing) {
- currentGraph = container.waitForNextComponentGeneration(currentGraph,
- createFallbackInjector(vespaContainer, discInjector),
- isInitializing);
+ public Runnable waitForNextComponentGeneration(Injector discInjector, boolean isInitializing) {
+ Container.ComponentGraphResult result = container.waitForNextComponentGeneration(
+ this.currentGraph,
+ createFallbackInjector(vespaContainer, discInjector),
+ isInitializing);
+ this.currentGraph = result.newGraph();
+ return result.oldComponentsCleanupTask();
}
@SuppressWarnings("deprecation")