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
git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@1718670 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/bundlerepository/src/main/java/org/apache/felix/bundlerepository/impl/ResolverImpl.java b/bundlerepository/src/main/java/org/apache/felix/bundlerepository/impl/ResolverImpl.java
index 40955b3..813f4a3 100644
--- a/bundlerepository/src/main/java/org/apache/felix/bundlerepository/impl/ResolverImpl.java
+++ b/bundlerepository/src/main/java/org/apache/felix/bundlerepository/impl/ResolverImpl.java
@@ -347,11 +347,13 @@
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 @@
{
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));
+ }
}
}
}