Hi,
We have a project that at build time performs binary weaving of aspects
on class files produced by IBM Java (J2RE 1.5.0 IBM J9 2.3 Linux amd64-64).
We're running AspectJ 1.5.3. Upgrading to 1.5.4 is an option, but would
be more work than we'd rather do in the immediate future.
At a particular point in the build, we intermittently hit a NullPointerException
in org.aspectj.weaver.ReferenceType:
[iajc] info Pipelining compilation
[iajc] info weaver operating in reweavable mode. Need
to verify any required types exist.
[iajc] java.lang.NullPointerException
[iajc] at org.aspectj.weaver.ReferenceType.getTypeVariables(ReferenceType.java:555)
[iajc] at org.aspectj.weaver.bcel.BcelGenericSignatureToTypeXConverter.fixUpCircularDependencies(BcelGenericSignatureToTypeXConverter.java:257)
[iajc] at org.aspectj.weaver.bcel.BcelGenericSignatureToTypeXConverter.classTypeSignature2TypeX(BcelGenericSignatureToTypeXConverter.java:47)
[iajc] at org.aspectj.weaver.bcel.BcelObjectType.ensureGenericSignatureUnpacked(BcelObjectType.java:685)
[iajc] at org.aspectj.weaver.bcel.BcelObjectType.getDeclaredInterfaces(BcelObjectType.java:201)
[iajc] at org.aspectj.weaver.ReferenceType.getDeclaredInterfaces(ReferenceType.java:398)
[iajc] at org.aspectj.weaver.ResolvedType.getDirectSupertypes(ResolvedType.java:65)
[iajc] at org.aspectj.weaver.ResolvedType.collectInterTypeMungers(ResolvedType.java:1156)
[iajc] at org.aspectj.weaver.ResolvedType.collectInterTypeMungers(ResolvedType.java:1158)
[iajc] at org.aspectj.weaver.ResolvedType.getInterTypeMungersIncludingSupers(ResolvedType.java:1135)
[iajc] at org.aspectj.weaver.ResolvedType.checkInterTypeMungers(ResolvedType.java:1202)
[iajc] at org.aspectj.weaver.bcel.BcelWeaver.weave(BcelWeaver.java:1588)
[iajc] at org.aspectj.weaver.bcel.BcelWeaver.weaveWithoutDump(BcelWeaver.java:1563)
[iajc] at org.aspectj.weaver.bcel.BcelWeaver.weaveAndNotify(BcelWeaver.java:1341)
[iajc] at org.aspectj.weaver.bcel.BcelWeaver.weave(BcelWeaver.java:1161)
Looking at the source code, it is clear that the 'delegate' field is set
to null. This problem doesn't occur all the time, but often enough to cause
us concern. It happens on multiple build servers at seemingly random times.
Our main build servers run 64bit Intel Xeon CPUs, with 4 GB of RAM, and
SLES 10 SP1. To my knowledge no one has encountered this running an Ant
build on a development workstation (32bit Windows).
Any help you can provide is greatly appreciated. We're looking to simply
understand what the problem is so our paranoia can decrease and hopefully
a workaround so that we don't see it again.
Thanks,
Alejandro Bascuas Small-Medium Enterprise Platform
Development
IBM - Rochester, MN
Dept: V2TA Bldg: 050-3 Office: H110
T/L 553-1962; Direct (507)253-1962
alej@xxxxxxxxxx