Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bundles/org.eclipse.osgi.compatibility.state/src/org/eclipse/osgi/internal/module/ResolverImpl.java14
1 files changed, 10 insertions, 4 deletions
diff --git a/bundles/org.eclipse.osgi.compatibility.state/src/org/eclipse/osgi/internal/module/ResolverImpl.java b/bundles/org.eclipse.osgi.compatibility.state/src/org/eclipse/osgi/internal/module/ResolverImpl.java
index f215c1b9b..cb14f5d1b 100644
--- a/bundles/org.eclipse.osgi.compatibility.state/src/org/eclipse/osgi/internal/module/ResolverImpl.java
+++ b/bundles/org.eclipse.osgi.compatibility.state/src/org/eclipse/osgi/internal/module/ResolverImpl.java
@@ -2102,12 +2102,13 @@ public class ResolverImpl implements Resolver {
}
private void unresolveBundle(ResolverBundle bundle, boolean removed) {
- if (bundle == null)
- return;
// check the removed list if unresolving then remove from the removed list
List<BundleDescription> removedBundles = removalPending.remove(new Long(bundle.getBundleDescription().getBundleId()));
for (BundleDescription removedDesc : removedBundles) {
ResolverBundle re = bundleMapping.get(removedDesc);
+ if (re == null) {
+ continue;
+ }
unresolveBundle(re, true);
state.removeBundleComplete(removedDesc);
resolverExports.remove(re.getExportPackages());
@@ -2135,8 +2136,13 @@ public class ResolverImpl implements Resolver {
BundleDescription[] dependents = bundle.getBundleDescription().getDependents();
state.resolveBundle(bundle.getBundleDescription(), false, null, null, null, null, null, null, null, null);
// Unresolve dependents of 'bundle'
- for (int i = 0; i < dependents.length; i++)
- unresolveBundle(bundleMapping.get(dependents[i]), false);
+ for (int i = 0; i < dependents.length; i++) {
+ ResolverBundle db = bundleMapping.get(dependents[i]);
+ if (db == null) {
+ continue;
+ }
+ unresolveBundle(db, false);
+ }
}
public void bundleUpdated(BundleDescription newDescription, BundleDescription existingDescription, boolean pending) {

Back to the top