http://gwt-code-reviews.appspot.com/1388803/diff/3004/dev/core/src/com/google/gwt/dev/resource/impl/ZipFileClassPathEntry.java File dev/core/src/com/google/gwt/dev/resource/impl/ZipFileClassPathEntry.java (right):
http://gwt-code-reviews.appspot.com/1388803/diff/3004/dev/core/src/com/google/gwt/dev/resource/impl/ZipFileClassPathEntry.java#newcode97 dev/core/src/com/google/gwt/dev/resource/impl/ZipFileClassPathEntry.java:97: private final Map<PathPrefixSet, ZipFileSnapshot> cachedSnapshots = new ReferenceIdentityMap( Practically I just keep previous behavior. 1. ReferenceIdentityMap is "weak" by definition because it uses == as equality, so if you lost reference of key, you will not able to get value. Same for weak WeakHashMap - if you lost last reference on key, GC will remove entry soon. 2. Difference between "key" and "value" in "cachedSnapshots" is that PathPrefixSet is remembered in ModuleDef (in oracles), but ZipFileSnapshot is not referenced from anywhere. So, if we will make reference on it weak, they will be removed quickly and this will make cache useless. http://gwt-code-reviews.appspot.com/1388803/ -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
