Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'bundles/org.eclipse.osgi/resolver')
-rw-r--r--bundles/org.eclipse.osgi/resolver/src/org/eclipse/osgi/internal/module/ResolverBundle.java13
-rw-r--r--bundles/org.eclipse.osgi/resolver/src/org/eclipse/osgi/internal/module/ResolverImpl.java1
2 files changed, 14 insertions, 0 deletions
diff --git a/bundles/org.eclipse.osgi/resolver/src/org/eclipse/osgi/internal/module/ResolverBundle.java b/bundles/org.eclipse.osgi/resolver/src/org/eclipse/osgi/internal/module/ResolverBundle.java
index 544ae47a9..8f16f561d 100644
--- a/bundles/org.eclipse.osgi/resolver/src/org/eclipse/osgi/internal/module/ResolverBundle.java
+++ b/bundles/org.eclipse.osgi/resolver/src/org/eclipse/osgi/internal/module/ResolverBundle.java
@@ -496,6 +496,19 @@ public class ResolverBundle extends VersionSupplier implements Comparable<Resolv
return newFragmentCapabilities;
}
+ public void detachFromHosts() {
+ if (!isFragment()) {
+ return;
+ }
+ VersionSupplier[] hosts = getHost().getPossibleSuppliers();
+ if (hosts == null) {
+ return;
+ }
+ for (VersionSupplier possibleHost : hosts) {
+ ((ResolverBundle) possibleHost).detachFragment(this, null);
+ }
+ }
+
void detachFragment(ResolverBundle fragment, ResolverConstraint reason) {
if (isFragment())
return;
diff --git a/bundles/org.eclipse.osgi/resolver/src/org/eclipse/osgi/internal/module/ResolverImpl.java b/bundles/org.eclipse.osgi/resolver/src/org/eclipse/osgi/internal/module/ResolverImpl.java
index 0f0653a66..beeed64c9 100644
--- a/bundles/org.eclipse.osgi/resolver/src/org/eclipse/osgi/internal/module/ResolverImpl.java
+++ b/bundles/org.eclipse.osgi/resolver/src/org/eclipse/osgi/internal/module/ResolverImpl.java
@@ -1681,6 +1681,7 @@ public class ResolverImpl implements Resolver {
resolverExports.remove(bundle.getExportPackages());
removeGenerics(bundle.getGenericCapabilities());
bundle.detachAllFragments();
+ bundle.detachFromHosts();
bundle.initialize(false);
if (!removed) {
// add back the available exports/capabilities

Back to the top