Fixes a bug in ResourceOracleImpl that caused rerooted resources to always appear stale whenever any resource was stale.
Review by: bruce (TBR)
git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@2760 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/dev/core/src/com/google/gwt/dev/resource/impl/ResourceOracleImpl.java b/dev/core/src/com/google/gwt/dev/resource/impl/ResourceOracleImpl.java
index 0d429ff..026b248 100644
--- a/dev/core/src/com/google/gwt/dev/resource/impl/ResourceOracleImpl.java
+++ b/dev/core/src/com/google/gwt/dev/resource/impl/ResourceOracleImpl.java
@@ -326,6 +326,16 @@
assert (path.startsWith(pathPrefix.getPrefix()));
if (pathPrefix.shouldReroot()) {
path = pathPrefix.getRerootedPath(path);
+ // Try to reuse the same wrapper.
+ Resource exposed = exposedResourceMap.get(path);
+ if (exposed instanceof ResourceWrapper) {
+ ResourceWrapper exposedWrapper = (ResourceWrapper) exposed;
+ if (exposedWrapper.resource == resource) {
+ externalMap.put(path, exposedWrapper);
+ break;
+ }
+ }
+ // Just create a new wrapper.
AbstractResource wrapper = new ResourceWrapper(path, resource);
externalMap.put(path, wrapper);
} else {