Create hash set on demand for fragment caps. (FELIX-2950)
git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@1148008 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/framework/src/main/java/org/apache/felix/framework/resolver/Candidates.java b/framework/src/main/java/org/apache/felix/framework/resolver/Candidates.java
index 141b868..3ff3791 100644
--- a/framework/src/main/java/org/apache/felix/framework/resolver/Candidates.java
+++ b/framework/src/main/java/org/apache/felix/framework/resolver/Candidates.java
@@ -210,7 +210,7 @@
ResolveException rethrow = null;
SortedSet<BundleCapability> candidates =
state.getCandidates((BundleRequirementImpl) req, true);
- Set<BundleCapability> fragmentCands = new HashSet();
+ Set<BundleCapability> fragmentCands = null;
for (Iterator<BundleCapability> itCandCap = candidates.iterator();
itCandCap.hasNext(); )
{
@@ -223,6 +223,10 @@
// if the fragment is already attached to any hosts.
if (isFragment)
{
+ if (fragmentCands == null)
+ {
+ fragmentCands = new HashSet<BundleCapability>();
+ }
fragmentCands.add(candCap);
}
@@ -263,7 +267,7 @@
// then also insert synthesized hosted capabilities for any other host
// to which the fragment is attached since they are all effectively
// unique capabilities.
- if (!fragmentCands.isEmpty())
+ if (fragmentCands != null)
{
for (BundleCapability fragCand : fragmentCands)
{