Problem with Annotation processing

Answered

Hi,

I am attempting to compile this Folio module, cloned from https://github.com/folio-org/mod-password-validator.git

using 

 in windows 11.

I am getting this error on compilation. 
It looks like there's some sort of file access clash on the code generated by the Mapper annotations.

  • I am not running maven on commandline at the same time.
  • If I do compile with maven on commandline, the build completes without error.
  • I have cleared the cache and done clean rebuilds
  • If I alter intelliJ to  delegate build/run calls to maven, it works. But I shouldn't have to.

Anyone got suggestion on how to fix?

 

Annotation settings as shown.
 

Error is as follows (formatted as I get it, no newlines in the original either)

C:\Dev\EurekaFolio\BackEnd\mod-password-validator\src\main\java\org\folio\pv\mapper\ValidationRuleMapper.java:21:8
java: Internal error in the mapping processor: java.lang.RuntimeException: javax.annotation.processing.FilerException: Attempt to recreate a file for type org.folio.pv.mapper.ValidationRuleMapperImpl
      at org.mapstruct.ap.internal.processor.MapperRenderingProcessor.createSourceFile(MapperRenderingProcessor.java:59)
      at org.mapstruct.ap.internal.processor.MapperRenderingProcessor.writeToSourceFile(MapperRenderingProcessor.java:39)
      at org.mapstruct.ap.internal.processor.MapperRenderingProcessor.process(MapperRenderingProcessor.java:29)
      at org.mapstruct.ap.internal.processor.MapperRenderingProcessor.process(MapperRenderingProcessor.java:24)
      at org.mapstruct.ap.MappingProcessor.process(MappingProcessor.java:400)
      at org.mapstruct.ap.MappingProcessor.processMapperTypeElement(MappingProcessor.java:380)
      at org.mapstruct.ap.MappingProcessor.processMapperElements(MappingProcessor.java:329)
      at org.mapstruct.ap.MappingProcessor.process(MappingProcessor.java:213)
      at org.jetbrains.jps.javac.APIWrappers$ProcessorWrapper.process(APIWrappers.java:228)
      at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
      at java.base/java.lang.reflect.Method.invoke(Method.java:580)
      at org.jetbrains.jps.javac.APIWrappers$1.invoke(APIWrappers.java:387)
      at jdk.proxy2/org.mapstruct.ap.MappingProcessor.process(Unknown Source)
      at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:1021)
      at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs(JavacProcessingEnvironment.java:937)
      at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.run(JavacProcessingEnvironment.java:1265)
      at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:1380)
      at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1272)
      at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:946)
      at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.lambda$doCall$0(JavacTaskImpl.java:104)
      at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.invocationHelper(JavacTaskImpl.java:152)
      at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.doCall(JavacTaskImpl.java:100)
      at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.call(JavacTaskImpl.java:94)
      at org.jetbrains.jps.javac.JavacMain.compile(JavacMain.java:241)
      at org.jetbrains.jps.incremental.java.JavaBuilder.lambda$compileJava$2(JavaBuilder.java:538)
      at org.jetbrains.jps.incremental.java.JavaBuilder.invokeJavac(JavaBuilder.java:600)
      at org.jetbrains.jps.incremental.java.JavaBuilder.compileJava(JavaBuilder.java:536)
      at org.jetbrains.jps.incremental.java.JavaBuilder.compile(JavaBuilder.java:377)
      at org.jetbrains.jps.incremental.java.JavaBuilder.doBuild(JavaBuilder.java:302)
      at org.jetbrains.jps.incremental.java.JavaBuilder.build(JavaBuilder.java:256)
      at org.jetbrains.jps.incremental.IncProjectBuilder.runModuleLevelBuilders(IncProjectBuilder.java:1512)
      at org.jetbrains.jps.incremental.IncProjectBuilder.runBuildersForChunk(IncProjectBuilder.java:614)
      at org.jetbrains.jps.incremental.IncProjectBuilder.buildTargetsChunk(IncProjectBuilder.java:1694)
      at org.jetbrains.jps.incremental.IncProjectBuilder.buildChunkIfAffected(IncProjectBuilder.java:1317)
      at org.jetbrains.jps.incremental.IncProjectBuilder$BuildParallelizer$1.run(IncProjectBuilder.java:1279)
      at com.intellij.util.concurrency.BoundedTaskExecutor.doRun(BoundedTaskExecutor.java:249)
      at com.intellij.util.concurrency.BoundedTaskExecutor.access$200(BoundedTaskExecutor.java:30)
      at com.intellij.util.concurrency.BoundedTaskExecutor$1.executeFirstTaskAndHelpQueue(BoundedTaskExecutor.java:227)
      at com.intellij.util.ConcurrencyUtil.runUnderThreadName(ConcurrencyUtil.java:249)
      at com.intellij.util.concurrency.BoundedTaskExecutor$1.run(BoundedTaskExecutor.java:212)
      at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
      at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
      at java.base/java.lang.Thread.run(Thread.java:1583)  
  Caused by: javax.annotation.processing.FilerException: Attempt to recreate a file for type org.folio.pv.mapper.ValidationRuleMapperImpl
      at jdk.compiler/com.sun.tools.javac.processing.JavacFiler.checkNameAndExistence(JavacFiler.java:741)
      at jdk.compiler/com.sun.tools.javac.processing.JavacFiler.createSourceOrClassFile(JavacFiler.java:498)
      at jdk.compiler/com.sun.tools.javac.processing.JavacFiler.createSourceFile(JavacFiler.java:435)
      at org.jetbrains.jps.javac.APIWrappers$FilerWrapper.createSourceFile(APIWrappers.java:319)
      at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
      at java.base/java.lang.reflect.Method.invoke(Method.java:580)
      at org.jetbrains.jps.javac.APIWrappers$1.invoke(APIWrappers.java:387)
      at jdk.proxy2/jdk.proxy2.$Proxy20.createSourceFile(Unknown Source)
      at org.mapstruct.ap.internal.processor.MapperRenderingProcessor.createSourceFile(MapperRenderingProcessor.java:56)
      ... 42 more  
0
4 comments

Problem solved.
I had to remove the generated target directories manually, then build in intelliJ and fail, then build in maven, then rebuild in IntelliJ.

0

Thanks for the update!

0

hello, in my case I had more or less the same issue, in my case the problem stems from annotation processing settings, apparently Idea is not understanding/seeing the maven setting about annotation processing in the pom so I had to set manually the global settings for annotation processing because apparently Idea was generating mapstruct Impl class in one folder and maven in another   

0

Dear Simone Saba, If the problem is still relevant and you need support, please provide more detailed information. It would be very helpful if you could provide a code example or a test project where the issue reproduces. You can use our service for this.
For your convenience, you can also create a new ticket for your problem here, and we would be happy to look into it individually.

0

Please sign in to leave a comment.