diff options
author | gjoranv <gv@verizonmedia.com> | 2022-09-01 08:43:56 +0200 |
---|---|---|
committer | gjoranv <gv@verizonmedia.com> | 2022-09-01 08:43:56 +0200 |
commit | cf928294be0c0d3a5be9137f4882fe02db6986ac (patch) | |
tree | 9ccccc9ae351e5fcee87f69d4c18c969de7ef65d /jdisc_core | |
parent | 35e134e209ac8cec8d4643e1eee691a6e3f32bdf (diff) |
Reapply "Clean up bundles and allowed duplicates after a failed reconfig."
This reverts commit f869fa7fc3fbce76bc19745201bb62484dfc8efe.
Diffstat (limited to 'jdisc_core')
-rw-r--r-- | jdisc_core/src/main/java/com/yahoo/jdisc/application/OsgiFramework.java | 2 | ||||
-rw-r--r-- | jdisc_core/src/main/java/com/yahoo/jdisc/core/BundleCollisionHook.java | 7 |
2 files changed, 4 insertions, 5 deletions
diff --git a/jdisc_core/src/main/java/com/yahoo/jdisc/application/OsgiFramework.java b/jdisc_core/src/main/java/com/yahoo/jdisc/application/OsgiFramework.java index 438ad8d8ebe..f8c158ab178 100644 --- a/jdisc_core/src/main/java/com/yahoo/jdisc/application/OsgiFramework.java +++ b/jdisc_core/src/main/java/com/yahoo/jdisc/application/OsgiFramework.java @@ -94,7 +94,7 @@ public interface OsgiFramework { * Allows this framework to install duplicates of the given collection of bundles. Duplicate detection * is handled by the {@link com.yahoo.jdisc.core.BundleCollisionHook}. * - * @param bundles The bundles to allow duplicates of + * @param bundles The bundles to allow duplicates of. An empty collection will prohibit any duplicates. */ void allowDuplicateBundles(Collection<Bundle> bundles); diff --git a/jdisc_core/src/main/java/com/yahoo/jdisc/core/BundleCollisionHook.java b/jdisc_core/src/main/java/com/yahoo/jdisc/core/BundleCollisionHook.java index 2f90b4e067f..3212bb4e6de 100644 --- a/jdisc_core/src/main/java/com/yahoo/jdisc/core/BundleCollisionHook.java +++ b/jdisc_core/src/main/java/com/yahoo/jdisc/core/BundleCollisionHook.java @@ -34,7 +34,7 @@ public class BundleCollisionHook implements CollisionHook, EventHook, FindHook { private static final Logger log = Logger.getLogger(BundleCollisionHook.class.getName()); private ServiceRegistration<?> registration; - private Map<Bundle, BsnVersion> allowedDuplicates = new HashMap<>(5); + private final Map<Bundle, BsnVersion> allowedDuplicates = new HashMap<>(5); public void start(BundleContext context) { if (registration != null) { @@ -50,11 +50,10 @@ public class BundleCollisionHook implements CollisionHook, EventHook, FindHook { } /** - * Adds a collection of bundles to the allowed duplicates. - * Also clears any previous allowed duplicates of the new allowed duplicates. + * Sets a collection of bundles to allow duplicates for. */ synchronized void allowDuplicateBundles(Collection<Bundle> bundles) { - allowedDuplicates.values().removeAll(bundles.stream().map(BsnVersion::new).collect(Collectors.toSet())); + allowedDuplicates.clear(); for (var bundle : bundles) { allowedDuplicates.put(bundle, new BsnVersion(bundle)); } |