Fixed binary type name resolution order, only generate binary names from already-compiled units.

git-svn-id: https://google-web-toolkit.googlecode.com/svn/releases/1.6@4721 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/dev/core/test/com/google/gwt/dev/javac/TypeOracleTestingUtils.java b/dev/core/test/com/google/gwt/dev/javac/TypeOracleTestingUtils.java
index 48c34b3..42ea2bc 100644
--- a/dev/core/test/com/google/gwt/dev/javac/TypeOracleTestingUtils.java
+++ b/dev/core/test/com/google/gwt/dev/javac/TypeOracleTestingUtils.java
@@ -17,6 +17,7 @@
 
 import com.google.gwt.core.ext.TreeLogger;
 import com.google.gwt.core.ext.typeinfo.TypeOracle;
+import com.google.gwt.dev.javac.CompilationUnit.State;
 import com.google.gwt.dev.javac.impl.SourceFileCompilationUnit;
 
 import java.util.Collections;
@@ -48,13 +49,16 @@
 
   public static TypeOracle buildTypeOracle(TreeLogger logger,
       Set<CompilationUnit> units) {
-    JdtCompiler.compile(units);
     Set<String> validBinaryTypeNames = new HashSet<String>();
     for (CompilationUnit unit : units) {
-      for (CompiledClass compiledClass : unit.getCompiledClasses()) {
-        validBinaryTypeNames.add(compiledClass.getBinaryName());
+      Set<CompiledClass> compiledClasses = unit.getCompiledClasses();
+      if (compiledClasses != null) {
+        for (CompiledClass compiledClass : compiledClasses) {
+          validBinaryTypeNames.add(compiledClass.getBinaryName());
+        }
       }
     }
+    JdtCompiler.compile(units);
     CompilationUnitInvalidator.validateCompilationUnits(units,
         validBinaryTypeNames);
     if (CompilationUnitInvalidator.invalidateUnitsWithErrors(logger, units)) {