Revision: 6825
Author: [email protected]
Date: Tue Nov 10 16:42:41 2009
Log: Fix NPE when an unknown type is referenced in a class signature (this  
could be
a binary-only annotation or an elided local class).

Patch by: jat
Review by: scottb (desk)

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

Modified:
  /trunk/dev/core/src/com/google/gwt/dev/javac/asm/ResolveTypeSignature.java

=======================================
---  
/trunk/dev/core/src/com/google/gwt/dev/javac/asm/ResolveTypeSignature.java      
 
Mon Nov  9 20:50:50 2009
+++  
/trunk/dev/core/src/com/google/gwt/dev/javac/asm/ResolveTypeSignature.java      
 
Tue Nov 10 16:42:41 2009
@@ -133,7 +133,12 @@
      assert Name.isInternalName(internalName);
      outerClass = enclosingClass;
      JRealClassType classType = binaryMapper.get(internalName);
-    boolean resolveSuccess = resolver.resolveClass(logger, classType);
+    // TODO(jat): failures here are likely binary-only annotations or local
+    // classes that have been elided from TypeOracle -- what should we do  
in
+    // those cases?  Currently we log an error and replace them with  
Object,
+    // but we may can do something better.
+    boolean resolveSuccess = classType == null ? false
+        : resolver.resolveClass(logger, classType);
      returnTypeRef[0] = classType;
      if (!resolveSuccess || returnTypeRef[0] == null) {
        logger.log(TreeLogger.ERROR, "Unable to resolve class " +  
internalName);

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

Reply via email to