Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bundles/org.eclipse.osgi/META-INF/MANIFEST.MF2
-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
3 files changed, 15 insertions, 1 deletions
diff --git a/bundles/org.eclipse.osgi/META-INF/MANIFEST.MF b/bundles/org.eclipse.osgi/META-INF/MANIFEST.MF
index 29267ae60..e812bd226 100644
--- a/bundles/org.eclipse.osgi/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.osgi/META-INF/MANIFEST.MF
@@ -78,7 +78,7 @@ Bundle-Activator: org.eclipse.osgi.framework.internal.core.SystemBundleActivator
Bundle-Description: %systemBundle
Bundle-Copyright: %copyright
Bundle-Vendor: %eclipse.org
-Bundle-Version: 3.8.0.qualifier
+Bundle-Version: 3.8.100.qualifier
Bundle-Localization: systembundle
Bundle-DocUrl: http://www.eclipse.org
Eclipse-ExtensibleAPI: true
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