eclipse-jdt / eclipse-jdt/eclipse.jdt.core

Eclipse 2021-12 - Error : Source file already created

Open
#111 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
237
Forks
195
Avg merge
1d 12h
Merged PRs (30d)
47

Description

Hello,
this issue is linked to the issue [2857](https://github.com/mapstruct/mapstruct/issues/2857) I opened on the mapstruct project.
The problem occur within eclipse 2021-12 and 2022-03 with a project that mapstruct-processor generating source files.
it seems that eclipse tries two generate the same file at least two times, throwing an error that stops the generation process.
The result is some files are not generated.

Steps to reproduce:
1. delete the generated sources folder one way or another (ex: cleaning project from eclipse, deleting manually, rebuilding after a git pull)
2. build the eclipse project having Mapstruct as dependency with Project > Build project

Some infos:
- Using Eclipse 2021-12 (4.22.0)
- [m2e-apt](https://marketplace.eclipse.org/content/m2e-apt) plugin installed
- [mapstruct plugin](https://marketplace.eclipse.org/content/mapstruct-eclipse-plugin) installed
- In Preferences > Maven > Annotation Processing, the option `Select Annotation Processing Mode` is set to `Auto configure JDT APT`. (see annotation_processing_setting attached file)
![annotation_processing_setting](https://user-images.githubusercontent.com/14792072/170225020-9f5a1ef9-f274-4df8-b0ce-48e36e568c59.PNG)
- This exception happens only when eclipse build the project, either automatically or manually, everything is working when building the whole project using maven directly instead.

Here's the partial pom.xml file from the project:
```XML


some-group
some-project

some-project-module


1.5.0.RC1
jdt_apt




org.apache.maven.plugins
maven-compiler-plugin



org.mapstruct
mapstruct-processor
${mapstruct.version}







org.mapstruct
mapstruct
${mapstruct.version}

```

Here's the exception:
```
Internal error in the mapping processor: java.lang.RuntimeException: javax.annotation.processing.FilerException: Source file already created: /api-rosa-orm-services/target/generated-sources/annotations/fr/gouv/finances/douane/referentiel/orm/rosa/utils/mapper/relation/eaoe/EaoeSousEaMapperImpl.java
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:350)
at org.mapstruct.ap.MappingProcessor.processMapperTypeElement(MappingProcessor.java:330)
at org.mapstruct.ap.MappingProcessor.processMapperElements(MappingProcessor.java:279)
at org.mapstruct.ap.MappingProcessor.process(MappingProcessor.java:174)
at org.eclipse.jdt.internal.compiler.apt.dispatch.RoundDispatcher.handleProcessor(RoundDispatcher.java:142)
at org.eclipse.jdt.internal.compiler.apt.dispatch.RoundDispatcher.round(RoundDispatcher.java:113)
at org.eclipse.jdt.internal.compiler.apt.dispatch.BaseAnnotationProcessorManager.processAnnotations(BaseAnnotationProcessorManager.java:172)
at org.eclipse.jdt.internal.apt.pluggable.core.dispatch.IdeAnnotationProcessorManager.processAnnotations(IdeAnnotationProcessorManager.java:138)
at org.eclipse.jdt.internal.compiler.Compiler.processAnnotations(Compiler.java:950)
at org.eclipse.jdt.int
![annotation_processing_setting](https://user-images.githubusercontent.com/14792072/170223291-224c58db-72c7-41f9-8bb1-5f00cdb30d75.PNG)
ernal.compiler.Compiler.compile(Compiler.java:450)
at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:426)
at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.compile(AbstractImageBuilder.java:379)
at org.eclipse.jdt.internal.core.builder.BatchImageBuilder.compile(BatchImageBuilder.java:214)
at org.eclipse.jdt.internal.core.builder.AbstractImageBuilder.compile(AbstractImageBuilder.java:338)
at org.eclipse.jdt.internal.core.builder.BatchImageBuilder.build(BatchImageBuilder.java:79)
at org.eclipse.jdt.internal.core.builder.JavaBuilder.buildAll(JavaBuilder.java:272)
at org.eclipse.jdt.internal.core.builder.JavaBuilder.build(JavaBuilder.java:187)
at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:853)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:232)
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:281)
at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:334)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:337)
at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:389)
at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:410)
at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:160)
at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:251)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63) Caused by: javax.annotation.processing.FilerException: Source file already created: /api-rosa-orm-services/target/generated-sources/annotations/fr/gouv/finances/douane/referentiel/orm/rosa/utils/mapper/relation/eaoe/EaoeSousEaMapperImpl.java
at org.eclipse.jdt.internal.apt.pluggable.core.filer.IdeFilerImpl.createSourceFile(IdeFilerImpl.java:161)
at org.mapstruct.ap.internal.processor.MapperRenderingProcessor.createSourceFile(MapperRenderingProcessor.java:56) ... 32 more
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.