aboutsummaryrefslogtreecommitdiffstats
path: root/container-di/src/main/java/com/yahoo/container/di/Container.java
diff options
context:
space:
mode:
authorJon Marius Venstad <jonmv@users.noreply.github.com>2020-12-08 01:22:19 +0100
committerGitHub <noreply@github.com>2020-12-08 01:22:19 +0100
commit96cf054bba808ff36e80cf939fadbc358b5ed7aa (patch)
tree3945720b9de8d56e84e49810c80356fa19771617 /container-di/src/main/java/com/yahoo/container/di/Container.java
parent82d1a71afff67b0004291be4091d8a00d0dfa79e (diff)
parented28b553908170648a2a5467d478d7830057a5b8 (diff)
Merge pull request #15731 from vespa-engine/revert-15724-revert-15723-revert-15715-jonmv/deconstruct-in-order
Revert "Revert "Revert "Always deconstruct in reverse creation order, including Provider objects"""
Diffstat (limited to 'container-di/src/main/java/com/yahoo/container/di/Container.java')
-rw-r--r--container-di/src/main/java/com/yahoo/container/di/Container.java15
1 files changed, 4 insertions, 11 deletions
diff --git a/container-di/src/main/java/com/yahoo/container/di/Container.java b/container-di/src/main/java/com/yahoo/container/di/Container.java
index 7fc2f2e55bc..af580767a17 100644
--- a/container-di/src/main/java/com/yahoo/container/di/Container.java
+++ b/container-di/src/main/java/com/yahoo/container/di/Container.java
@@ -21,7 +21,6 @@ import com.yahoo.container.di.config.SubscriberFactory;
import com.yahoo.vespa.config.ConfigKey;
import org.osgi.framework.Bundle;
-import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
@@ -160,16 +159,10 @@ public class Container {
private void deconstructObsoleteComponents(ComponentGraph oldGraph,
ComponentGraph newGraph,
Collection<Bundle> obsoleteBundles) {
- Map<Object, ?> newComponents = new IdentityHashMap<>(newGraph.size());
- for (Object component : newGraph.allConstructedComponentsAndProviders())
- newComponents.put(component, null);
-
- List<Object> obsoleteComponents = new ArrayList<>();
- for (Object component : oldGraph.allConstructedComponentsAndProviders())
- if ( ! newComponents.containsKey(component))
- obsoleteComponents.add(component);
-
- componentDeconstructor.deconstruct(obsoleteComponents, obsoleteBundles);
+ IdentityHashMap<Object, Object> oldComponents = new IdentityHashMap<>();
+ oldGraph.allConstructedComponentsAndProviders().forEach(c -> oldComponents.put(c, null));
+ newGraph.allConstructedComponentsAndProviders().forEach(oldComponents::remove);
+ componentDeconstructor.deconstruct(oldComponents.keySet(), obsoleteBundles);
}
private Set<Bundle> installApplicationBundles(Map<ConfigKey<? extends ConfigInstance>, ConfigInstance> configsIncludingBootstrapConfigs) {