Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Watson2013-10-08 20:10:12 +0000
committerThomas Watson2013-10-09 15:25:27 +0000
commit3f410db5092aaa5705d6fcd392d47888f440e4a0 (patch)
tree73705e72c7a7ee52f98aa8033554fe4e09130d6c /bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/ModuleDatabase.java
parent480042f16d2f239bc0d7034fc737192f53a90edc (diff)
downloadrt.equinox.framework-3f410db5092aaa5705d6fcd392d47888f440e4a0.tar.gz
rt.equinox.framework-3f410db5092aaa5705d6fcd392d47888f440e4a0.tar.xz
rt.equinox.framework-3f410db5092aaa5705d6fcd392d47888f440e4a0.zip
Bug 418929 - dynamic package resolution misses are not cached
Diffstat (limited to 'bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/ModuleDatabase.java')
-rw-r--r--bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/ModuleDatabase.java10
1 files changed, 7 insertions, 3 deletions
diff --git a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/ModuleDatabase.java b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/ModuleDatabase.java
index f9d6e6a92..675737b64 100644
--- a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/ModuleDatabase.java
+++ b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/ModuleDatabase.java
@@ -794,9 +794,13 @@ public class ModuleDatabase {
* This method must be called while holding the {@link #writeLock() write} lock.
* @param revision the revision which has capabilities to add
*/
- protected void addCapabilities(ModuleRevision revision) {
+ final void addCapabilities(ModuleRevision revision) {
checkWrite();
- capabilities.addCapabilities(revision);
+ Collection<String> packageNames = capabilities.addCapabilities(revision);
+ // Clear the dynamic miss caches for all the package names added
+ for (ModuleWiring wiring : wirings.values()) {
+ wiring.removeDynamicPackageMisses(packageNames);
+ }
}
/**
@@ -823,7 +827,7 @@ public class ModuleDatabase {
* @param requirement the requirement
* @return the candidates for the requirement
*/
- protected List<ModuleCapability> findCapabilities(Requirement requirement) {
+ final List<ModuleCapability> findCapabilities(Requirement requirement) {
readLock();
try {
return capabilities.findCapabilities(requirement);

Back to the top