Community
Participate
Working Groups
CompilerAdapter has a static field which sometimes is dereferenced as null and throws NPE. This can be reproduced by removing synchronization around ajcMain.runMain(). https://github.com/mojohaus/aspectj-maven-plugin/blob/master/src/main/java/org/codehaus/mojo/aspectj/AbstractAjcCompiler.java#L567 Note, that ajcMain is created anew for each invocation of the execute. ``` java.lang.NullPointerException at org.aspectj.ajdt.internal.compiler.CompilerAdapter.ajc$before$org_aspectj_ajdt_internal_compiler_CompilerAdapter$1$4c37d260 (CompilerAdapter.aj:70) at org.aspectj.org.eclipse.jdt.internal.compiler.Compiler.compile (Compiler.java:417) at org.aspectj.ajdt.internal.core.builder.AjBuildManager.performCompilation (AjBuildManager.java:1036) at org.aspectj.ajdt.internal.core.builder.AjBuildManager.performBuild (AjBuildManager.java:272) at org.aspectj.ajdt.internal.core.builder.AjBuildManager.batchBuild (AjBuildManager.java:185) at org.aspectj.ajdt.ajc.AjdtCommand.doCommand (AjdtCommand.java:114) at org.aspectj.ajdt.ajc.AjdtCommand.runCommand (AjdtCommand.java:60) at org.aspectj.tools.ajc.Main.run (Main.java:371) at org.aspectj.tools.ajc.Main.runMain (Main.java:248) at com.okta.maven.aspectj.ProcessClassesMojo.execute (ProcessClassesMojo.java:88) at com.gradle.maven.scan.extension.internal.e.a.executeMojo (SourceFile:135) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:208) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:154) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:146) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117) at org.apache.maven.lifecycle.internal.builder.multithreaded.MultiThreadedBuilder$1.call (MultiThreadedBuilder.java:200) at org.apache.maven.lifecycle.internal.builder.multithreaded.MultiThreadedBuilder$1.call (MultiThreadedBuilder.java:196) at java.util.concurrent.FutureTask.run (FutureTask.java:266) at java.util.concurrent.Executors$RunnableAdapter.call (Executors.java:511) at java.util.concurrent.FutureTask.run (FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:624) at java.lang.Thread.run (Thread.java:750) ```