Revision: 7259
Author: [email protected]
Date: Fri Dec  4 14:22:11 2009
Log: Restores logging for recursive unit invalidation.

Review by: bobv
http://code.google.com/p/google-web-toolkit/source/detail?r=7259

Modified:
  /trunk/dev/core/src/com/google/gwt/dev/javac/CompilationStateBuilder.java
   
/trunk/dev/core/src/com/google/gwt/dev/javac/CompilationUnitInvalidator.java

=======================================
---  
/trunk/dev/core/src/com/google/gwt/dev/javac/CompilationStateBuilder.java       
 
Thu Nov 12 06:32:35 2009
+++  
/trunk/dev/core/src/com/google/gwt/dev/javac/CompilationStateBuilder.java       
 
Fri Dec  4 14:22:11 2009
@@ -185,11 +185,11 @@
      return instance;
    }

-  private static void invalidateUnitsWithInvalidRefs(
+  private static void invalidateUnitsWithInvalidRefs(TreeLogger logger,
        Map<String, CompilationUnit> resultUnits, Set<ContentId> set) {
      Set<CompilationUnit> validResultUnits = new HashSet<CompilationUnit>(
          resultUnits.values());
-    CompilationUnitInvalidator.retainValidUnits(validResultUnits, set);
+    CompilationUnitInvalidator.retainValidUnits(logger, validResultUnits,  
set);
      for (Entry<String, CompilationUnit> entry : resultUnits.entrySet()) {
        CompilationUnit unit = entry.getValue();
        if (unit.isCompiled() && !validResultUnits.contains(unit)) {
@@ -260,7 +260,8 @@
      }

      // Winnow the reusable set of units down to those still valid.
-    CompilationUnitInvalidator.retainValidUnits(resultUnits.values());
+    CompilationUnitInvalidator.retainValidUnits(TreeLogger.NULL,
+        resultUnits.values());

      // Compile everything else.
      CompileMoreLater compileMoreLater = new CompileMoreLater();
@@ -279,7 +280,7 @@
      compileMoreLater.compile(logger, builders, resultUnits);

      // Invalidate units with invalid refs.
-    invalidateUnitsWithInvalidRefs(resultUnits,
+    invalidateUnitsWithInvalidRefs(logger, resultUnits,
          Collections.<ContentId> emptySet());
      return new CompilationState(logger, resultUnits.values(),  
compileMoreLater);
    }
@@ -306,8 +307,8 @@
      }

      // Winnow the reusable set of units down to those still valid.
-    CompilationUnitInvalidator.retainValidUnits(resultUnits.values(),
-        compileMoreLater.getValidDependencies());
+    CompilationUnitInvalidator.retainValidUnits(TreeLogger.NULL,
+        resultUnits.values(), compileMoreLater.getValidDependencies());
      for (CompilationUnit validUnit : resultUnits.values()) {
        compileMoreLater.addValidUnit(validUnit);
        // Report any existing errors as if the unit were recompiled.
@@ -323,7 +324,7 @@
      }

      compileMoreLater.compile(logger, builders, resultUnits);
-    invalidateUnitsWithInvalidRefs(resultUnits,
+    invalidateUnitsWithInvalidRefs(logger, resultUnits,
          compileMoreLater.getValidDependencies());
      return resultUnits.values();
    }
=======================================
---  
/trunk/dev/core/src/com/google/gwt/dev/javac/CompilationUnitInvalidator.java    
 
Fri Dec  4 14:22:06 2009
+++  
/trunk/dev/core/src/com/google/gwt/dev/javac/CompilationUnitInvalidator.java    
 
Fri Dec  4 14:22:11 2009
@@ -55,12 +55,15 @@
      }
    }

-  public static void retainValidUnits(Collection<CompilationUnit> units) {
-    retainValidUnits(units, Collections.<ContentId> emptySet());
+  public static void retainValidUnits(TreeLogger logger,
+      Collection<CompilationUnit> units) {
+    retainValidUnits(logger, units, Collections.<ContentId> emptySet());
    }

-  public static void retainValidUnits(Collection<CompilationUnit> units,
-      Set<ContentId> knownValidRefs) {
+  public static void retainValidUnits(TreeLogger logger,
+      Collection<CompilationUnit> units, Set<ContentId> knownValidRefs) {
+    logger = logger.branch(TreeLogger.TRACE, "Removing invalidated units");
+
      // Assume all units are valid at first.
      Set<CompilationUnit> currentlyValidUnits = new  
HashSet<CompilationUnit>();
      Set<ContentId> currentlyValidRefs = new  
HashSet<ContentId>(knownValidRefs);
@@ -74,14 +77,19 @@
      boolean changed;
      do {
        changed = false;
-      iterating : for (Iterator<CompilationUnit> it =  
currentlyValidUnits.iterator(); it.hasNext();) {
+      for (Iterator<CompilationUnit> it = currentlyValidUnits.iterator();  
it.hasNext();) {
          CompilationUnit unitToCheck = it.next();
+        TreeLogger branch = null;
          for (ContentId ref : unitToCheck.getDependencies()) {
            if (!currentlyValidRefs.contains(ref)) {
-            it.remove();
-            currentlyValidRefs.remove(unitToCheck.getContentId());
-            changed = true;
-            continue iterating;
+            if (branch == null) {
+              branch = logger.branch(TreeLogger.DEBUG, "Compilation unit '"
+                  + unitToCheck + "' is removed due to invalid  
reference(s):");
+              it.remove();
+              currentlyValidRefs.remove(unitToCheck.getContentId());
+              changed = true;
+            }
+            branch.log(TreeLogger.DEBUG, ref.get());
            }
          }
        }

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

Reply via email to