diff options
author | Thomas Watson | 2019-06-27 19:35:27 +0000 |
---|---|---|
committer | Thomas Watson | 2019-06-27 19:35:27 +0000 |
commit | 68ef33a10da1674e02fe5975ab27c613c5372f77 (patch) | |
tree | dbe659e3da373ef696d30f181fd3b057e16e3f41 /bundles/org.eclipse.osgi/container/src/org | |
parent | dd5045f0d79e3c8001a0b7abab6733f89d385d1b (diff) | |
download | rt.equinox.framework-68ef33a10da1674e02fe5975ab27c613c5372f77.tar.gz rt.equinox.framework-68ef33a10da1674e02fe5975ab27c613c5372f77.tar.xz rt.equinox.framework-68ef33a10da1674e02fe5975ab27c613c5372f77.zip |
Bug 548727 - Using Collection.removeAll is not always the best
Change-Id: I71c48a74d00a3a57c9f838f22a4f6cfdd3a27f01
Signed-off-by: Thomas Watson <tjwatson@us.ibm.com>
Diffstat (limited to 'bundles/org.eclipse.osgi/container/src/org')
-rw-r--r-- | bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/ModuleResolver.java | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/ModuleResolver.java b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/ModuleResolver.java index c48483a2e..c55afa11e 100644 --- a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/ModuleResolver.java +++ b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/ModuleResolver.java @@ -606,7 +606,9 @@ final class ModuleResolver { this.optionals = new LinkedHashSet<>(unresolved); if (this.triggersMandatory) { // do this the hard way because the 'optimization' in removeAll hurts us - this.optionals.removeAll(triggers); + for (ModuleRevision triggerRevision : triggers) { + this.optionals.remove(triggerRevision); + } } this.wirings = new HashMap<>(wirings); this.previouslyResolved = new HashSet<>(wirings.keySet()); @@ -1404,7 +1406,9 @@ final class ModuleResolver { Collection<ModuleRevision> enabledCandidates = new ArrayList<>(unresolved); hook.filterResolvable(InternalUtils.asListBundleRevision((List<? extends BundleRevision>) enabledCandidates)); // do this the hard way because the 'optimization' in removeAll hurts us - disabled.removeAll(enabledCandidates); + for (ModuleRevision enabledRevision : enabledCandidates) { + disabled.remove(enabledRevision); + } for (ModuleRevision revision : disabled) { reportBuilder.addEntry(revision, Entry.Type.FILTERED_BY_RESOLVER_HOOK, null); if (DEBUG_HOOKS) { |