AspectJ 1.7.1, LTW.
We use custom classloader that loads classes from byte[] array.
Class loading looks like this:
Class clazz = new MyClassLoader().defineClass(classPackage + className, bytecode, 0, bytecode.length);
This code executes concurrently.
Classes from classPackage are not included for weaving in aop.xml. Moreover, AspectJ reports that it can't find configuration for MyClassLoader.
From time to time we are getting the following exceptions:
SEVERE: my.package.MyClass
java.lang.NullPointerException
at org.aspectj.weaver.Dump.dumpOnExit(Dump.java:163)
at org.aspectj.weaver.loadtime.Aj.preProcess(Aj.java:100)
at org.aspectj.weaver.loadtime.ClassPreProcessorAgentAdapter.transform(ClassPreProcessorAgentAdapter.java:54)
at sun.instrument.TransformerManager.transform(TransformerManager.java:169)
at sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:365)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
at java.lang.ClassLoader.defineClass(ClassLoader.java:466)
at MyClassLoader.defineClass
...
Why AspectJ tries to weave this classes?
Why it fails with NullPointerException?
Sergii