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)
                 {