From: Andy Clement Date: Wed, 2 Sep 2015 16:05:35 +0000 (-0700) Subject: 475728, 432874 X-Git-Tag: V1_8_7~6 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=415ef622d9435806ef0736341402772487deed23;p=aspectj.git 475728, 432874 --- diff --git a/weaver/src/org/aspectj/weaver/bcel/BcelObjectType.java b/weaver/src/org/aspectj/weaver/bcel/BcelObjectType.java index 5c1ae918b..584a14c8d 100644 --- a/weaver/src/org/aspectj/weaver/bcel/BcelObjectType.java +++ b/weaver/src/org/aspectj/weaver/bcel/BcelObjectType.java @@ -901,6 +901,11 @@ public class BcelObjectType extends AbstractReferenceTypeDelegate { // try finding outer class name by assuming standard class name mangling convention of javac for this class int lastDollar = className.lastIndexOf('$'); + if (lastDollar == -1) { + // Is this class damaged/obfuscated? Why did we think it was nested but couldn't find the parent using + // the attributes above. For now just ignore it... I wonder when ignoring this will come back to bite! + return null; + } String superClassName = className.substring(0, lastDollar); UnresolvedType outer = UnresolvedType.forName(superClassName); return outer.resolve(getResolvedTypeX().getWorld());