Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Watson2012-07-13 12:30:04 +0000
committerThomas Watson2012-07-13 12:30:04 +0000
commitf99b390e94a13d10babc26bcdcf5a6a61e29b865 (patch)
treef4fd922d8a8954b915800d0fd4e04fe886c13aba /bundles/org.eclipse.osgi/resolver
parent55174f2056703052729ce396b609b917f97ba37a (diff)
downloadrt.equinox.framework-f99b390e94a13d10babc26bcdcf5a6a61e29b865.tar.gz
rt.equinox.framework-f99b390e94a13d10babc26bcdcf5a6a61e29b865.tar.xz
rt.equinox.framework-f99b390e94a13d10babc26bcdcf5a6a61e29b865.zip
Bug 375650 - StateReader cannot find an object, which is expected tov20120713-123004I20120725-1800
be in its object table
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