Revision: 10382
Author:   gwt.mirror...@gmail.com
Date:     Thu Jun 23 04:50:59 2011
Log:      Update client bundle result caching to track absent resources

Review at http://gwt-code-reviews.appspot.com/1466804

http://code.google.com/p/google-web-toolkit/source/detail?r=10382

Modified:
 /trunk/user/src/com/google/gwt/resources/ext/ResourceGeneratorUtil.java
/trunk/user/src/com/google/gwt/resources/rebind/context/AbstractClientBundleGenerator.java

=======================================
--- /trunk/user/src/com/google/gwt/resources/ext/ResourceGeneratorUtil.java Tue Apr 26 08:02:24 2011 +++ /trunk/user/src/com/google/gwt/resources/ext/ResourceGeneratorUtil.java Thu Jun 23 04:50:59 2011
@@ -517,7 +517,7 @@
   /**
    * Get default list of resource Locators, in the default order.
    *
-   * @param context
+   * @param genContext
    * @return an ordered array of Locator[]
    */
private static Locator[] getDefaultLocators(GeneratorContext genContext) {
@@ -533,7 +533,7 @@
    * Get the current locale string.
    *
    * @param logger
-   * @param context
+   * @param genContext
    * @return the current locale
    */
private static String getLocale(TreeLogger logger, GeneratorContext genContext) {
@@ -614,7 +614,7 @@
       String resourceName, String locale) {

     URL toReturn = tryFindResource(locator, resourceName, locale);
-    if (toReturn != null && context != null) {
+    if (context != null) {
       ClientBundleRequirements reqs = context.getRequirements();
       if (reqs != null) {
         reqs.addResolvedResource(resourceName, toReturn);
=======================================
--- /trunk/user/src/com/google/gwt/resources/rebind/context/AbstractClientBundleGenerator.java Mon Jun 20 09:36:25 2011 +++ /trunk/user/src/com/google/gwt/resources/rebind/context/AbstractClientBundleGenerator.java Thu Jun 23 04:50:59 2011
@@ -335,7 +335,7 @@
     boolean useCache = false;
     if (checkPropertyCacheability(logger, generatorContext)
         && checkSourceTypeCacheability(logger, generatorContext)
- && checkDependentResourceCacheability(logger, generatorContext, null)) {
+        && checkDependentResourceCacheability(logger, generatorContext)) {
       useCache = true;
     }

@@ -586,7 +586,7 @@
    * Check dependent resources for cacheability.
    */
   private boolean checkDependentResourceCacheability(TreeLogger logger,
-      GeneratorContextExt genContext, ResourceContext resourceContext) {
+      GeneratorContextExt genContext) {

CachedRebindResult lastRebindResult = genContext.getCachedGeneratorResult();

@@ -608,9 +608,17 @@
     for (Entry<String, URL> entry : cachedResolvedResources.entrySet()) {
       String resourceName = entry.getKey();
       URL resolvedUrl = entry.getValue();
- URL currentUrl = ResourceGeneratorUtil.tryFindResource(logger, genContext,
-          resourceContext, resourceName);
-      if (currentUrl == null || resolvedUrl == null
+      URL currentUrl =
+ ResourceGeneratorUtil.tryFindResource(logger, genContext, null, resourceName);
+
+      if (resolvedUrl == null) {
+        if (currentUrl == null) {
+          continue;
+        } else {
+ logger.log(TreeLogger.TRACE, "Found newly available dependent resource: " + resourceName);
+          return false;
+        }
+      } else if (currentUrl == null
| | !resolvedUrl.toExternalForm().equals(currentUrl.toExternalForm())) {
         logger.log(TreeLogger.TRACE,
"Found dependent resource that has moved or no longer exists: " + resourceName);

--
http://groups.google.com/group/Google-Web-Toolkit-Contributors

Reply via email to