-
-
Notifications
You must be signed in to change notification settings - Fork 1k
Closed
Copy link
Labels
Milestone
Description
Expected behavior
The compilation to succeed.
Actual behavior
The following error is generated by MapStruct during compilation:
/*
@Generated(
value = "org.mapstruct.ap.MappingProcessor",
date = "2025-01-27T14:14:13+0100",
comments = "version: 1.6.3, compiler: javac, environment: Java 21.0.5 (Eclipse Adoptium)"
)
*/
public class ClassMapperImpl implements ClassMapper {
@Override
public ClassB normalMappingWorks(ClassA source) {
if ( source == null ) {
return null;
}
ClassB classB = new ClassB();
if ( canMap( source, "param" ) ) {
classB.setParam( nestedClassAToNestedClassB( source.getParam() ) );
}
return classB;
}
@Override
public void updateMappingFails(ClassA source, ClassB target) {
if ( source == null ) {
return;
}
if ( canMap( source, "FreeMarker template error (DEBUG mode; use RETHROW in production!): The following has evaluated to null or missing: ==> ext.targetPropertyName [in template "org/mapstruct/ap/internal/model/MethodReference.ftl" at line 50, column 16] ---- Tip: It's the step after the last dot that caused this error, not those before it. ---- Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${ext.targetPropertyName} [in template "org/mapstruct/ap/internal/model/MethodReference.ftl" in macro "arguments" at line 50, column 14] - Reached through: @arguments [in template "org/mapstruct/ap/internal/model/MethodReference.ftl" in macro "methodCall" at line 32, column 53] - Reached through: @methodCall [in template "org/mapstruct/ap/internal/model/MethodReference.ftl" at line 24, column 9] - Reached through: @compress single_line=true [in template "org/mapstruct/ap/internal/model/MethodReference.ftl" at line 9, column 1] ---- Java stack trace (for programmers): ---- org.mapstruct.ap.shaded.freemarker.core.InvalidReferenceException: [... Exception message was already printed; see it above ...] at org.mapstruct.ap.shaded.freemarker.core.InvalidReferenceException.getInstance(InvalidReferenceException.java:134) at org.mapstruct.ap.shaded.freemarker.core.EvalUtil.coerceModelToTextualCommon(EvalUtil.java:481) at org.mapstruct.ap.shaded.freemarker.core.EvalUtil.coerceModelToStringOrMarkup(EvalUtil.java:401) at org.mapstruct.ap.shaded.freemarker.core.EvalUtil.coerceModelToStringOrMarkup(EvalUtil.java:370) at org.mapstruct.ap.shaded.freemarker.core.DollarVariable.calculateInterpolatedStringOrMarkup(DollarVariable.java:104) at org.mapstruct.ap.shaded.freemarker.core.DollarVariable.accept(DollarVariable.java:63) at org.mapstruct.ap.shaded.freemarker.core.Environment.visit(Environment.java:335) at org.mapstruct.ap.shaded.freemarker.core.Environment.visit(Environment.java:377) at org.mapstruct.ap.shaded.freemarker.core.IteratorBlock$IterationContext.executedNestedContentForCollOrSeqListing(IteratorBlock.java:291) at org.mapstruct.ap.shaded.freemarker.core.IteratorBlock$IterationContext.executeNestedContent(IteratorBlock.java:271) at org.mapstruct.ap.shaded.freemarker.core.IteratorBlock$IterationContext.accept(IteratorBlock.java:244) at org.mapstruct.ap.shaded.freemarker.core.Environment.visitIteratorBlock(Environment.java:645) at org.mapstruct.ap.shaded.freemarker.core.IteratorBlock.acceptWithResult(IteratorBlock.java:108) at org.mapstruct.ap.shaded.freemarker.core.IteratorBlock.accept(IteratorBlock.java:94) at org.mapstruct.ap.shaded.freemarker.core.Environment.visit(Environment.java:371) at org.mapstruct.ap.shaded.freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:877) at org.mapstruct.ap.shaded.freemarker.core.Environment.invokeMacro(Environment.java:813) at org.mapstruct.ap.shaded.freemarker.core.UnifiedCall.accept(UnifiedCall.java:84) at org.mapstruct.ap.shaded.freemarker.core.Environment.visit(Environment.java:335) at org.mapstruct.ap.shaded.freemarker.core.Environment.visit(Environment.java:377) at org.mapstruct.ap.shaded.freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:877) at org.mapstruct.ap.shaded.freemarker.core.Environment.invokeMacro(Environment.java:813) at org.mapstruct.ap.shaded.freemarker.core.UnifiedCall.accept(UnifiedCall.java:84) at org.mapstruct.ap.shaded.freemarker.core.Environment.visit(Environment.java:335) at org.mapstruct.ap.shaded.freemarker.core.Environment.visit(Environment.java:377) at org.mapstruct.ap.shaded.freemarker.core.Environment.visitAndTransform(Environment.java:502) at org.mapstruct.ap.shaded.freemarker.core.UnifiedCall.accept(UnifiedCall.java:104) at org.mapstruct.ap.shaded.freemarker.core.Environment.visit(Environment.java:335) at org.mapstruct.ap.shaded.freemarker.core.Environment.visit(Environment.java:341) at org.mapstruct.ap.shaded.freemarker.core.Environment.process(Environment.java:314) at org.mapstruct.ap.shaded.freemarker.template.Template.process(Template.java:383) at org.mapstruct.ap.internal.writer.FreeMarkerModelElementWriter.write(FreeMarkerModelElementWriter.java:35) at org.mapstruct.ap.internal.writer.FreeMarkerWritable.write(FreeMarkerWritable.java:19) at org.mapstruct.ap.internal.writer.ModelIncludeDirective.execute(ModelIncludeDirective.java:48) at org.mapstruct.ap.shaded.freemarker.core.Environment.visit(Environment.java:452) at org.mapstruct.ap.shaded.freemarker.core.UnifiedCall.accept(UnifiedCall.java:102) at org.mapstruct.ap.shaded.freemarker.core.Environment.visit(Environment.java:335) at org.mapstruct.ap.shaded.freemarker.core.Environment.visit(Environment.java:341) at org.mapstruct.ap.shaded.freemarker.core.Environment.process(Environment.java:314) at org.mapstruct.ap.shaded.freemarker.template.Template.process(Template.java:383) at org.mapstruct.ap.internal.writer.FreeMarkerModelElementWriter.write(FreeMarkerModelElementWriter.java:35) at org.mapstruct.ap.internal.writer.FreeMarkerWritable.write(FreeMarkerWritable.java:19) at org.mapstruct.ap.internal.writer.ModelIncludeDirective.execute(ModelIncludeDirective.java:48) at org.mapstruct.ap.shaded.freemarker.core.Environment.visit(Environment.java:452) at org.mapstruct.ap.shaded.freemarker.core.UnifiedCall.accept(UnifiedCall.java:102) at org.mapstruct.ap.shaded.freemarker.core.Environment.visit(Environment.java:335) at org.mapstruct.ap.shaded.freemarker.core.Environment.visit(Environment.java:341) at org.mapstruct.ap.shaded.freemarker.core.Environment.visit(Environment.java:377) at org.mapstruct.ap.shaded.freemarker.core.Environment.invokeNestedContent(Environment.java:621) at org.mapstruct.ap.shaded.freemarker.core.BodyInstruction.accept(BodyInstruction.java:60) at org.mapstruct.ap.shaded.freemarker.core.Environment.visit(Environment.java:335) at org.mapstruct.ap.shaded.freemarker.core.Environment.visit(Environment.java:377) at org.mapstruct.ap.shaded.freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:877) at org.mapstruct.ap.shaded.freemarker.core.Environment.invokeMacro(Environment.java:813) at org.mapstruct.ap.shaded.freemarker.core.UnifiedCall.accept(UnifiedCall.java:84) at org.mapstruct.ap.shaded.freemarker.core.Environment.visit(Environment.java:335) at org.mapstruct.ap.shaded.freemarker.core.Environment.visit(Environment.java:341) at org.mapstruct.ap.shaded.freemarker.core.Environment.process(Environment.java:314) at org.mapstruct.ap.shaded.freemarker.template.Template.process(Template.java:383) at org.mapstruct.ap.internal.writer.FreeMarkerModelElementWriter.write(FreeMarkerModelElementWriter.java:35) at org.mapstruct.ap.internal.writer.FreeMarkerWritable.write(FreeMarkerWritable.java:19) at org.mapstruct.ap.internal.writer.ModelIncludeDirective.execute(ModelIncludeDirective.java:48) at org.mapstruct.ap.shaded.freemarker.core.Environment.visit(Environment.java:452) at org.mapstruct.ap.shaded.freemarker.core.UnifiedCall.accept(UnifiedCall.java:102) at org.mapstruct.ap.shaded.freemarker.core.Environment.visit(Environment.java:335) at org.mapstruct.ap.shaded.freemarker.core.Environment.visit(Environment.java:341) at org.mapstruct.ap.shaded.freemarker.core.Environment.process(Environment.java:314) at org.mapstruct.ap.shaded.freemarker.template.Template.process(Template.java:383) at org.mapstruct.ap.internal.writer.FreeMarkerModelElementWriter.write(FreeMarkerModelElementWriter.java:35) at org.mapstruct.ap.internal.writer.FreeMarkerWritable.write(FreeMarkerWritable.java:19) at org.mapstruct.ap.internal.writer.ModelIncludeDirective.execute(ModelIncludeDirective.java:48) at org.mapstruct.ap.shaded.freemarker.core.Environment.visit(Environment.java:452) at org.mapstruct.ap.shaded.freemarker.core.UnifiedCall.accept(UnifiedCall.java:102) at org.mapstruct.ap.shaded.freemarker.core.Environment.visit(Environment.java:371) at org.mapstruct.ap.shaded.freemarker.core.IteratorBlock$IterationContext.executedNestedContentForCollOrSeqListing(IteratorBlock.java:291) at org.mapstruct.ap.shaded.freemarker.core.IteratorBlock$IterationContext.executeNestedContent(IteratorBlock.java:271) at org.mapstruct.ap.shaded.freemarker.core.IteratorBlock$IterationContext.accept(IteratorBlock.java:244) at org.mapstruct.ap.shaded.freemarker.core.Environment.visitIteratorBlock(Environment.java:645) at org.mapstruct.ap.shaded.freemarker.core.IteratorBlock.acceptWithResult(IteratorBlock.java:108) at org.mapstruct.ap.shaded.freemarker.core.IteratorBlock.accept(IteratorBlock.java:94) at org.mapstruct.ap.shaded.freemarker.core.Environment.visit(Environment.java:335) at org.mapstruct.ap.shaded.freemarker.core.Environment.visit(Environment.java:341) at org.mapstruct.ap.shaded.freemarker.core.Environment.visit(Environment.java:341) at org.mapstruct.ap.shaded.freemarker.core.Environment.visit(Environment.java:341) at org.mapstruct.ap.shaded.freemarker.core.Environment.process(Environment.java:314) at org.mapstruct.ap.shaded.freemarker.template.Template.process(Template.java:383) at org.mapstruct.ap.internal.writer.FreeMarkerModelElementWriter.write(FreeMarkerModelElementWriter.java:35) at org.mapstruct.ap.internal.writer.FreeMarkerWritable.write(FreeMarkerWritable.java:19) at org.mapstruct.ap.internal.writer.ModelIncludeDirective.execute(ModelIncludeDirective.java:48) at org.mapstruct.ap.shaded.freemarker.core.Environment.visit(Environment.java:452) at org.mapstruct.ap.shaded.freemarker.core.UnifiedCall.accept(UnifiedCall.java:102) at org.mapstruct.ap.shaded.freemarker.core.Environment.visit(Environment.java:371) at org.mapstruct.ap.shaded.freemarker.core.IteratorBlock$IterationContext.executedNestedContentForCollOrSeqListing(IteratorBlock.java:291) at org.mapstruct.ap.shaded.freemarker.core.IteratorBlock$IterationContext.executeNestedContent(IteratorBlock.java:271) at org.mapstruct.ap.shaded.freemarker.core.IteratorBlock$IterationContext.accept(IteratorBlock.java:244) at org.mapstruct.ap.shaded.freemarker.core.Environment.visitIteratorBlock(Environment.java:645) at org.mapstruct.ap.shaded.freemarker.core.IteratorBlock.acceptWithResult(IteratorBlock.java:108) at org.mapstruct.ap.shaded.freemarker.core.IteratorBlock.accept(IteratorBlock.java:94) at org.mapstruct.ap.shaded.freemarker.core.Environment.visit(Environment.java:335) at org.mapstruct.ap.shaded.freemarker.core.Environment.visit(Environment.java:341) at org.mapstruct.ap.shaded.freemarker.core.Environment.process(Environment.java:314) at org.mapstruct.ap.shaded.freemarker.template.Template.process(Template.java:383) at org.mapstruct.ap.internal.writer.FreeMarkerModelElementWriter.write(FreeMarkerModelElementWriter.java:35) at org.mapstruct.ap.internal.writer.FreeMarkerWritable.write(FreeMarkerWritable.java:19) at org.mapstruct.ap.internal.writer.ModelWriter.writeModel(ModelWriter.java:69) at org.mapstruct.ap.internal.processor.MapperRenderingProcessor.createSourceFile(MapperRenderingProcessor.java:62) 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 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.codehaus.plexus.compiler.javac.JavaxToolsCompiler.compileInProcess(JavaxToolsCompiler.java:126) at org.codehaus.plexus.compiler.javac.JavacCompiler.performCompile(JavacCompiler.java:214) at org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:1228) at org.apache.maven.plugin.compiler.CompilerMojo.execute(CompilerMojo.java:215) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:126) at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2(MojoExecutor.java:328) at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute(MojoExecutor.java:316) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:174) at org.apache.maven.lifecycle.internal.MojoExecutor.access$000(MojoExecutor.java:75) at org.apache.maven.lifecycle.internal.MojoExecutor$1.run(MojoExecutor.java:162) at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute(DefaultMojosExecutionStrategy.java:39) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:159) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:105) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:73) at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:53) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:118) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:261) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:173) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:101) at org.apache.maven.cli.MavenCli.execute(MavenCli.java:906) at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:283) at org.apache.maven.cli.MavenCli.main(MavenCli.java:206) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:255) at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:201) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:361) at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:314) at org.codehaus.classworlds.Launcher.main(Launcher.java:41)FreeMarker template error (DEBUG mode; use RETHROW in production!):
The following has evaluated to null or missing:
==> ext.targetPropertyName [in template "org/mapstruct/ap/internal/model/MethodReference.ftl" at line 50, column 16]
----
Tip: It's the step after the last dot that caused this error, not those before it.
----
Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----
----
FTL stack trace ("~" means nesting-related):
- Failed at: ${ext.targetPropertyName} [in template "org/mapstruct/ap/internal/model/MethodReference.ftl" in macro "arguments" at line 50, column 14]
- Reached through: @arguments [in template "org/mapstruct/ap/internal/model/MethodReference.ftl" in macro "methodCall" at line 32, column 53]
- Reached through: @methodCall [in template "org/mapstruct/ap/internal/model/MethodReference.ftl" at line 24, column 9]
- Reached through: @compress single_line=true [in template "org/mapstruct/ap/internal/model/MethodReference.ftl" at line 9, column 1]
----
Java stack trace (for programmers):
----
org.mapstruct.ap.shaded.freemarker.core.InvalidReferenceException: [... Exception message was already printed; see it above ...]
at org.mapstruct.ap.shaded.freemarker.core.InvalidReferenceException.getInstance(InvalidReferenceException.java:134)
at org.mapstruct.ap.shaded.freemarker.core.EvalUtil.coerceModelToTextualCommon(EvalUtil.java:481)
at org.mapstruct.ap.shaded.freemarker.core.EvalUtil.coerceModelToStringOrMarkup(EvalUtil.java:401)
at org.mapstruct.ap.shaded.freemarker.core.EvalUtil.coerceModelToStringOrMarkup(EvalUtil.java:370)
at org.mapstruct.ap.shaded.freemarker.core.DollarVariable.calculateInterpolatedStringOrMarkup(DollarVariable.java:104)
at org.mapstruct.ap.shaded.freemarker.core.DollarVariable.accept(DollarVariable.java:63)
at org.mapstruct.ap.shaded.freemarker.core.Environment.visit(Environment.java:335)
at org.mapstruct.ap.shaded.freemarker.core.Environment.visit(Environment.java:377)
at org.mapstruct.ap.shaded.freemarker.core.IteratorBlock$IterationContext.executedNestedContentForCollOrSeqListing(IteratorBlock.java:291)
at org.mapstruct.ap.shaded.freemarker.core.IteratorBlock$IterationContext.executeNestedContent(IteratorBlock.java:271)
at org.mapstruct.ap.shaded.freemarker.core.IteratorBlock$IterationContext.accept(IteratorBlock.java:244)
at org.mapstruct.ap.shaded.freemarker.core.Environment.visitIteratorBlock(Environment.java:645)
at org.mapstruct.ap.shaded.freemarker.core.IteratorBlock.acceptWithResult(IteratorBlock.java:108)
at org.mapstruct.ap.shaded.freemarker.core.IteratorBlock.accept(IteratorBlock.java:94)
at org.mapstruct.ap.shaded.freemarker.core.Environment.visit(Environment.java:371)
at org.mapstruct.ap.shaded.freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:877)
at org.mapstruct.ap.shaded.freemarker.core.Environment.invokeMacro(Environment.java:813)
at org.mapstruct.ap.shaded.freemarker.core.UnifiedCall.accept(UnifiedCall.java:84)
at org.mapstruct.ap.shaded.freemarker.core.Environment.visit(Environment.java:335)
at org.mapstruct.ap.shaded.freemarker.core.Environment.visit(Environment.java:377)
at org.mapstruct.ap.shaded.freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:877)
at org.mapstruct.ap.shaded.freemarker.core.Environment.invokeMacro(Environment.java:813)
at org.mapstruct.ap.shaded.freemarker.core.UnifiedCall.accept(UnifiedCall.java:84)
at org.mapstruct.ap.shaded.freemarker.core.Environment.visit(Environment.java:335)
at org.mapstruct.ap.shaded.freemarker.core.Environment.visit(Environment.java:377)
at org.mapstruct.ap.shaded.freemarker.core.Environment.visitAndTransform(Environment.java:502)
at org.mapstruct.ap.shaded.freemarker.core.UnifiedCall.accept(UnifiedCall.java:104)
at org.mapstruct.ap.shaded.freemarker.core.Environment.visit(Environment.java:335)
at org.mapstruct.ap.shaded.freemarker.core.Environment.visit(Environment.java:341)
at org.mapstruct.ap.shaded.freemarker.core.Environment.process(Environment.java:314)
at org.mapstruct.ap.shaded.freemarker.template.Template.process(Template.java:383)
at org.mapstruct.ap.internal.writer.FreeMarkerModelElementWriter.write(FreeMarkerModelElementWriter.java:35)
at org.mapstruct.ap.internal.writer.FreeMarkerWritable.write(FreeMarkerWritable.java:19)
at org.mapstruct.ap.internal.writer.ModelIncludeDirective.execute(ModelIncludeDirective.java:48)
at org.mapstruct.ap.shaded.freemarker.core.Environment.visit(Environment.java:452)
at org.mapstruct.ap.shaded.freemarker.core.UnifiedCall.accept(UnifiedCall.java:102)
at org.mapstruct.ap.shaded.freemarker.core.Environment.visit(Environment.java:335)
at org.mapstruct.ap.shaded.freemarker.core.Environment.visit(Environment.java:341)
at org.mapstruct.ap.shaded.freemarker.core.Environment.process(Environment.java:314)
at org.mapstruct.ap.shaded.freemarker.template.Template.process(Template.java:383)
at org.mapstruct.ap.internal.writer.FreeMarkerModelElementWriter.write(FreeMarkerModelElementWriter.java:35)
at org.mapstruct.ap.internal.writer.FreeMarkerWritable.write(FreeMarkerWritable.java:19)
at org.mapstruct.ap.internal.writer.ModelIncludeDirective.execute(ModelIncludeDirective.java:48)
at org.mapstruct.ap.shaded.freemarker.core.Environment.visit(Environment.java:452)
at org.mapstruct.ap.shaded.freemarker.core.UnifiedCall.accept(UnifiedCall.java:102)
at org.mapstruct.ap.shaded.freemarker.core.Environment.visit(Environment.java:335)
at org.mapstruct.ap.shaded.freemarker.core.Environment.visit(Environment.java:341)
at org.mapstruct.ap.shaded.freemarker.core.Environment.visit(Environment.java:377)
at org.mapstruct.ap.shaded.freemarker.core.Environment.invokeNestedContent(Environment.java:621)
at org.mapstruct.ap.shaded.freemarker.core.BodyInstruction.accept(BodyInstruction.java:60)
at org.mapstruct.ap.shaded.freemarker.core.Environment.visit(Environment.java:335)
at org.mapstruct.ap.shaded.freemarker.core.Environment.visit(Environment.java:377)
at org.mapstruct.ap.shaded.freemarker.core.Environment.invokeMacroOrFunctionCommonPart(Environment.java:877)
at org.mapstruct.ap.shaded.freemarker.core.Environment.invokeMacro(Environment.java:813)
at org.mapstruct.ap.shaded.freemarker.core.UnifiedCall.accept(UnifiedCall.java:84)
at org.mapstruct.ap.shaded.freemarker.core.Environment.visit(Environment.java:335)
at org.mapstruct.ap.shaded.freemarker.core.Environment.visit(Environment.java:341)
at org.mapstruct.ap.shaded.freemarker.core.Environment.process(Environment.java:314)
at org.mapstruct.ap.shaded.freemarker.template.Template.process(Template.java:383)
at org.mapstruct.ap.internal.writer.FreeMarkerModelElementWriter.write(FreeMarkerModelElementWriter.java:35)
at org.mapstruct.ap.internal.writer.FreeMarkerWritable.write(FreeMarkerWritable.java:19)
at org.mapstruct.ap.internal.writer.ModelIncludeDirective.execute(ModelIncludeDirective.java:48)
at org.mapstruct.ap.shaded.freemarker.core.Environment.visit(Environment.java:452)
at org.mapstruct.ap.shaded.freemarker.core.UnifiedCall.accept(UnifiedCall.java:102)
at org.mapstruct.ap.shaded.freemarker.core.Environment.visit(Environment.java:335)
at org.mapstruct.ap.shaded.freemarker.core.Environment.visit(Environment.java:341)
at org.mapstruct.ap.shaded.freemarker.core.Environment.process(Environment.java:314)
at org.mapstruct.ap.shaded.freemarker.template.Template.process(Template.java:383)
at org.mapstruct.ap.internal.writer.FreeMarkerModelElementWriter.write(FreeMarkerModelElementWriter.java:35)
at org.mapstruct.ap.internal.writer.FreeMarkerWritable.write(FreeMarkerWritable.java:19)
at org.mapstruct.ap.internal.writer.ModelIncludeDirective.execute(ModelIncludeDirective.java:48)
at org.mapstruct.ap.shaded.freemarker.core.Environment.visit(Environment.java:452)
at org.mapstruct.ap.shaded.freemarker.core.UnifiedCall.accept(UnifiedCall.java:102)
at org.mapstruct.ap.shaded.freemarker.core.Environment.visit(Environment.java:371)
at org.mapstruct.ap.shaded.freemarker.core.IteratorBlock$IterationContext.executedNestedContentForCollOrSeqListing(IteratorBlock.java:291)
at org.mapstruct.ap.shaded.freemarker.core.IteratorBlock$IterationContext.executeNestedContent(IteratorBlock.java:271)
at org.mapstruct.ap.shaded.freemarker.core.IteratorBlock$IterationContext.accept(IteratorBlock.java:244)
at org.mapstruct.ap.shaded.freemarker.core.Environment.visitIteratorBlock(Environment.java:645)
at org.mapstruct.ap.shaded.freemarker.core.IteratorBlock.acceptWithResult(IteratorBlock.java:108)
at org.mapstruct.ap.shaded.freemarker.core.IteratorBlock.accept(IteratorBlock.java:94)
at org.mapstruct.ap.shaded.freemarker.core.Environment.visit(Environment.java:335)
at org.mapstruct.ap.shaded.freemarker.core.Environment.visit(Environment.java:341)
at org.mapstruct.ap.shaded.freemarker.core.Environment.visit(Environment.java:341)
at org.mapstruct.ap.shaded.freemarker.core.Environment.visit(Environment.java:341)
at org.mapstruct.ap.shaded.freemarker.core.Environment.process(Environment.java:314)
at org.mapstruct.ap.shaded.freemarker.template.Template.process(Template.java:383)
at org.mapstruct.ap.internal.writer.FreeMarkerModelElementWriter.write(FreeMarkerModelElementWriter.java:35)
at org.mapstruct.ap.internal.writer.FreeMarkerWritable.write(FreeMarkerWritable.java:19)
at org.mapstruct.ap.internal.writer.ModelIncludeDirective.execute(ModelIncludeDirective.java:48)
at org.mapstruct.ap.shaded.freemarker.core.Environment.visit(Environment.java:452)
at org.mapstruct.ap.shaded.freemarker.core.UnifiedCall.accept(UnifiedCall.java:102)
at org.mapstruct.ap.shaded.freemarker.core.Environment.visit(Environment.java:371)
at org.mapstruct.ap.shaded.freemarker.core.IteratorBlock$IterationContext.executedNestedContentForCollOrSeqListing(IteratorBlock.java:291)
at org.mapstruct.ap.shaded.freemarker.core.IteratorBlock$IterationContext.executeNestedContent(IteratorBlock.java:271)
at org.mapstruct.ap.shaded.freemarker.core.IteratorBlock$IterationContext.accept(IteratorBlock.java:244)
at org.mapstruct.ap.shaded.freemarker.core.Environment.visitIteratorBlock(Environment.java:645)
at org.mapstruct.ap.shaded.freemarker.core.IteratorBlock.acceptWithResult(IteratorBlock.java:108)
at org.mapstruct.ap.shaded.freemarker.core.IteratorBlock.accept(IteratorBlock.java:94)
at org.mapstruct.ap.shaded.freemarker.core.Environment.visit(Environment.java:335)
at org.mapstruct.ap.shaded.freemarker.core.Environment.visit(Environment.java:341)
at org.mapstruct.ap.shaded.freemarker.core.Environment.process(Environment.java:314)
at org.mapstruct.ap.shaded.freemarker.template.Template.process(Template.java:383)
at org.mapstruct.ap.internal.writer.FreeMarkerModelElementWriter.write(FreeMarkerModelElementWriter.java:35)
at org.mapstruct.ap.internal.writer.FreeMarkerWritable.write(FreeMarkerWritable.java:19)
at org.mapstruct.ap.internal.writer.ModelWriter.writeModel(ModelWriter.java:69)
at org.mapstruct.ap.internal.processor.MapperRenderingProcessor.createSourceFile(MapperRenderingProcessor.java:62)
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 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.codehaus.plexus.compiler.javac.JavaxToolsCompiler.compileInProcess(JavaxToolsCompiler.java:126)
at org.codehaus.plexus.compiler.javac.JavacCompiler.performCompile(JavacCompiler.java:214)
at org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:1228)
at org.apache.maven.plugin.compiler.CompilerMojo.execute(CompilerMojo.java:215)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:126)
at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2(MojoExecutor.java:328)
at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute(MojoExecutor.java:316)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:174)
at org.apache.maven.lifecycle.internal.MojoExecutor.access$000(MojoExecutor.java:75)
at org.apache.maven.lifecycle.internal.MojoExecutor$1.run(MojoExecutor.java:162)
at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute(DefaultMojosExecutionStrategy.java:39)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:159)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:105)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:73)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:53)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:118)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:261)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:173)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:101)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:906)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:283)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:206)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:255)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:201)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:361)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:314)
at org.codehaus.classworlds.Launcher.main(Launcher.java:41)Steps to reproduce the problem
- Create 2 classes (ClassA and ClassB), both each having a nested property of the same name (param) and structurally similar type (NestedClassA and NestedClassB, respectively).
- Specify a mapper:
ClassB normalMappingWorks(ClassA source);
void updateMappingFails(ClassA source, @MappingTarget ClassB target);- and a condition:
@Condition
default boolean canMap(Object source, @TargetPropertyName String propertyName) {
return true;
}- Compilation fails, producing the above error.
- If the update mapping is commented out, the generation works.
A MCVE is attached (tested with Java 21 Maven 3.9.9): mcve.zip
MapStruct Version
MapStruct 1.6.3
Reactions are currently unavailable