diff options
author | Thomas Watson | 2013-10-08 20:10:12 +0000 |
---|---|---|
committer | Thomas Watson | 2013-10-09 15:25:27 +0000 |
commit | 3f410db5092aaa5705d6fcd392d47888f440e4a0 (patch) | |
tree | 73705e72c7a7ee52f98aa8033554fe4e09130d6c /bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/ModuleDatabase.java | |
parent | 480042f16d2f239bc0d7034fc737192f53a90edc (diff) | |
download | rt.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.java | 10 |
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); |