Aggressively clear transient state between runs.


git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@2761 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/dev/core/src/com/google/gwt/dev/javac/TypeOracleMediator.java b/dev/core/src/com/google/gwt/dev/javac/TypeOracleMediator.java
index a58513c..885f0d4 100644
--- a/dev/core/src/com/google/gwt/dev/javac/TypeOracleMediator.java
+++ b/dev/core/src/com/google/gwt/dev/javac/TypeOracleMediator.java
@@ -348,10 +348,7 @@
       throws UnableToCompleteException {
     PerfLogger.start("TypeOracleMediator.refresh");
     typeOracle.removeInvalidatedTypes();
-    binaryMapper.clear();
-    sourceMapper.clear();
-    tvMapper.clear();
-    unresolvedTypes.clear();
+    clear();
 
     // Perform a shallow pass to establish identity for new and old types.
     PerfLogger.start("TypeOracleMediator.refresh (shallow)");
@@ -390,6 +387,7 @@
         }
       }
     }
+    clear();
     PerfLogger.end();
 
     try {
@@ -402,6 +400,13 @@
     PerfLogger.end();
   }
 
+  private void clear() {
+    binaryMapper.clear();
+    sourceMapper.clear();
+    tvMapper.clear();
+    unresolvedTypes.clear();
+  }
+
   private Object createAnnotationInstance(TreeLogger logger,
       Expression expression) {
     Annotation annotation = (Annotation) expression;