Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Watson2008-03-31 18:11:22 -0400
committerThomas Watson2008-03-31 18:11:22 -0400
commit64a9f89cc5e7341d9d7e9d38c1ab3ee2e86fea34 (patch)
tree76f260608d16b2f5f9c43853eef182d0e54e39b5 /bundles/org.eclipse.osgi/resolver
parent3c5d28f7e773be55747e2c410b589c63e44cd480 (diff)
downloadrt.equinox.framework-64a9f89cc5e7341d9d7e9d38c1ab3ee2e86fea34.tar.gz
rt.equinox.framework-64a9f89cc5e7341d9d7e9d38c1ab3ee2e86fea34.tar.xz
rt.equinox.framework-64a9f89cc5e7341d9d7e9d38c1ab3ee2e86fea34.zip
Bug 224432 Memory Leak in install -> start -> stop -> uninistall cyclev20080331
Diffstat (limited to 'bundles/org.eclipse.osgi/resolver')
-rw-r--r--bundles/org.eclipse.osgi/resolver/src/org/eclipse/osgi/internal/module/ResolverBundle.java2
-rw-r--r--bundles/org.eclipse.osgi/resolver/src/org/eclipse/osgi/internal/module/ResolverImpl.java3
2 files changed, 5 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 977f2ffa1..dcae3876c 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
@@ -583,6 +583,8 @@ public class ResolverBundle extends VersionSupplier implements Comparable {
}
void addRef(ResolverBundle ref) {
+ if (((BundleDescription) getBaseDescription()).isResolved())
+ return; // don't care when the bundle is already resolved
if (refs != null && !refs.contains(ref))
refs.add(ref);
}
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 5485f7125..45c7ae924 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
@@ -975,6 +975,9 @@ public class ResolverImpl implements org.eclipse.osgi.service.resolver.Resolver
}
}
}
+ // clear the refs; we don't care about the refs after singlton selection
+ for (int i = 0; i < bundles.length; i++)
+ bundles[i].clearRefs();
// unresolve the rejected singletons
for (Iterator rejects = rejectedSingletons.iterator(); rejects.hasNext();)
unresolveBundle((ResolverBundle) bundleMapping.get(rejects.next()), false);

Back to the top