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 -~----------~----~----~----~------~----~------~--~---
