Problem with Annotation processing
已回答
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
请先登录再写评论。
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.
Thanks for the update!
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
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.