]> source.dussan.org Git - aspectj.git/commitdiff
482945: obfuscated class file finding outer class
authorAndy Clement <aclement@pivotal.io>
Tue, 8 Dec 2015 00:09:21 +0000 (16:09 -0800)
committerAndy Clement <aclement@pivotal.io>
Tue, 8 Dec 2015 00:09:21 +0000 (16:09 -0800)
org.aspectj.matcher/src/org/aspectj/weaver/AbstractReferenceTypeDelegate.java

index f735049273977160be0442b90ba6cc579c33337a..46f12c04ee02b6868387a8ff0270a63b339b430a 100644 (file)
@@ -107,9 +107,13 @@ public abstract class AbstractReferenceTypeDelegate implements ReferenceTypeDele
                List<GenericSignature.FormalTypeParameter> typeParameters = new ArrayList<GenericSignature.FormalTypeParameter>();
                ResolvedType outerClassType = getOuterClass();
                if (!(outerClassType instanceof ReferenceType)) {
-                       throw new BCException("Whilst processing type '" + this.resolvedTypeX.getSignature()
-                                       + "' - cannot cast the outer type to a reference type.  Signature=" + outerClassType.getSignature()
-                                       + " toString()=" + outerClassType.toString());
+                       if (outerClassType == null) {
+                               return GenericSignature.FormalTypeParameter.NONE;
+                       } else {
+                               throw new BCException("Whilst processing type '" + this.resolvedTypeX.getSignature()
+                                               + "' - cannot cast the outer type to a reference type.  Signature=" + outerClassType.getSignature()
+                                               + " toString()=" + outerClassType.toString());
+                       }
                }
                ReferenceType outer = (ReferenceType) outerClassType;
                ReferenceTypeDelegate outerDelegate = outer.getDelegate();