From: Andy Clement Date: Tue, 8 Dec 2015 00:09:21 +0000 (-0800) Subject: 482945: obfuscated class file finding outer class X-Git-Tag: V1_8_8~3 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=9b220fe52ad9bb117140692f7cf455d78a17be11;p=aspectj.git 482945: obfuscated class file finding outer class --- diff --git a/org.aspectj.matcher/src/org/aspectj/weaver/AbstractReferenceTypeDelegate.java b/org.aspectj.matcher/src/org/aspectj/weaver/AbstractReferenceTypeDelegate.java index f73504927..46f12c04e 100644 --- a/org.aspectj.matcher/src/org/aspectj/weaver/AbstractReferenceTypeDelegate.java +++ b/org.aspectj.matcher/src/org/aspectj/weaver/AbstractReferenceTypeDelegate.java @@ -107,9 +107,13 @@ public abstract class AbstractReferenceTypeDelegate implements ReferenceTypeDele List typeParameters = new ArrayList(); 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();