Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bundles/org.eclipse.osgi/resolver/src/org/eclipse/osgi/internal/resolver/StateImpl.java14
1 files changed, 11 insertions, 3 deletions
diff --git a/bundles/org.eclipse.osgi/resolver/src/org/eclipse/osgi/internal/resolver/StateImpl.java b/bundles/org.eclipse.osgi/resolver/src/org/eclipse/osgi/internal/resolver/StateImpl.java
index 7c6c6cc4a..2fed95a99 100644
--- a/bundles/org.eclipse.osgi/resolver/src/org/eclipse/osgi/internal/resolver/StateImpl.java
+++ b/bundles/org.eclipse.osgi/resolver/src/org/eclipse/osgi/internal/resolver/StateImpl.java
@@ -270,9 +270,12 @@ public abstract class StateImpl implements State {
GenericSpecification[] genericRequires = bundle.getGenericRequires();
if (genericRequires.length > 0) {
ArrayList genericSuppliers = new ArrayList(genericRequires.length);
- for (int i = 0; i < genericRequires.length; i++)
- if (genericRequires[i].getSupplier() != null)
- genericSuppliers.add(genericRequires[i].getSupplier());
+ for (int i = 0; i < genericRequires.length; i++) {
+ GenericDescription[] suppliers = genericRequires[i].getSuppliers();
+ if (suppliers != null)
+ for (int j = 0; j < suppliers.length; j++)
+ genericSuppliers.add(suppliers[j]);
+ }
bundle.addDependencies((BaseDescription[]) genericSuppliers.toArray(new BaseDescription[genericSuppliers.size()]));
}
}
@@ -286,6 +289,11 @@ public abstract class StateImpl implements State {
bundle.setResolvedImports(null);
bundle.setResolvedRequires(null);
+ // remove suppliers for generics
+ GenericSpecification[] genericRequires = bundle.getGenericRequires();
+ if (genericRequires.length > 0)
+ for (int i = 0; i < genericRequires.length; i++)
+ ((GenericSpecificationImpl) genericRequires[i]).setSupplers(null);
bundle.removeDependencies();
}

Back to the top