Author: davidb
Date: Tue Dec  8 18:43:13 2015
New Revision: 1718670

URL: http://svn.apache.org/viewvc?rev=1718670&view=rev
Log:
FELIX-5112 ClassCastException when deploying an OBR Resource already present in 
the runtime

More code cleanup
Committed on behalf of @skahmann with many thanks. Contributed via 
https://github.com/apache/felix/pull/44

Modified:
    
felix/trunk/bundlerepository/src/main/java/org/apache/felix/bundlerepository/impl/ResolverImpl.java

Modified: 
felix/trunk/bundlerepository/src/main/java/org/apache/felix/bundlerepository/impl/ResolverImpl.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/bundlerepository/src/main/java/org/apache/felix/bundlerepository/impl/ResolverImpl.java?rev=1718670&r1=1718669&r2=1718670&view=diff
==============================================================================
--- 
felix/trunk/bundlerepository/src/main/java/org/apache/felix/bundlerepository/impl/ResolverImpl.java
 (original)
+++ 
felix/trunk/bundlerepository/src/main/java/org/apache/felix/bundlerepository/impl/ResolverImpl.java
 Tue Dec  8 18:43:13 2015
@@ -347,11 +347,13 @@ public class ResolverImpl implements Res
         for (Resource aResourceSet : resourceSet) {
             checkInterrupt();
             Capability[] caps = aResourceSet.getCapabilities();
-            for (int capIdx = 0; (caps != null) && (capIdx < caps.length); 
capIdx++) {
-                if (req.isSatisfied(caps[capIdx])) {
-                    // The requirement is already satisfied an existing
-                    // resource, return the resource.
-                    return aResourceSet;
+            if (caps != null) {
+                for (Capability cap : caps) {
+                    if (req.isSatisfied(cap)) {
+                        // The requirement is already satisfied an existing
+                        // resource, return the resource.
+                        return aResourceSet;
+                    }
                 }
             }
         }
@@ -369,18 +371,17 @@ public class ResolverImpl implements Res
     {
         List<ResourceCapability> matchingCapabilities = new 
ArrayList<ResourceCapability>();
 
-        for (int resIdx = 0; (resources != null) && (resIdx < 
resources.length); resIdx++)
-        {
-            checkInterrupt();
-            // We don't need to look at resources we've already looked at.
-            if (!m_failedSet.contains(resources[resIdx]))
-            {
-                Capability[] caps = resources[resIdx].getCapabilities();
-                for (int capIdx = 0; (caps != null) && (capIdx < caps.length); 
capIdx++)
-                {
-                    if (req.isSatisfied(caps[capIdx]))
-                    {
-                        matchingCapabilities.add(new 
ResourceCapabilityImpl(resources[resIdx], caps[capIdx]));
+        if (resources != null) {
+            for (Resource resource : resources) {
+                checkInterrupt();
+                // We don't need to look at resources we've already looked at.
+                if (!m_failedSet.contains(resource)) {
+                    Capability[] caps = resource.getCapabilities();
+                    if (caps != null) {
+                        for (Capability cap : caps) {
+                            if (req.isSatisfied(cap))
+                                matchingCapabilities.add(new 
ResourceCapabilityImpl(resource, cap));
+                        }
                     }
                 }
             }


Reply via email to