Apply patch to avoid calculating package space more than once. (FELIX-3465)


git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@1326752 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/framework/src/main/java/org/apache/felix/framework/resolver/ResolverImpl.java b/framework/src/main/java/org/apache/felix/framework/resolver/ResolverImpl.java
index 739b2c6..8008cd6 100644
--- a/framework/src/main/java/org/apache/felix/framework/resolver/ResolverImpl.java
+++ b/framework/src/main/java/org/apache/felix/framework/resolver/ResolverImpl.java
@@ -509,6 +509,12 @@
         }
         cycle.add(revision);
 
+        // Make sure package space hasn't already been calculated.
+        if (revisionPkgMap.containsKey(revision))
+        {
+            return;
+        }
+
         // Create parallel arrays for requirement and proposed candidate
         // capability or actual capability if revision is resolved or not.
         List<BundleRequirement> reqs = new ArrayList();
diff --git a/resolver/src/main/java/org/apache/felix/resolver/ResolverImpl.java b/resolver/src/main/java/org/apache/felix/resolver/ResolverImpl.java
index e6d3311..0ee3c53 100644
--- a/resolver/src/main/java/org/apache/felix/resolver/ResolverImpl.java
+++ b/resolver/src/main/java/org/apache/felix/resolver/ResolverImpl.java
@@ -522,6 +522,12 @@
         }
         cycle.add(resource);
 
+        // Make sure package space hasn't already been calculated.
+        if (resourcePkgMap.containsKey(resource))
+        {
+            return;
+        }
+
         // Create parallel arrays for requirement and proposed candidate
         // capability or actual capability if resource is resolved or not.
         List<Requirement> reqs = new ArrayList();