You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hello,
I have faced a problem with including MappingConfiguration and extending another mapper at the same time. My mapper is pretty complicated, it contains multiple nested mappers. I have configuration collected in interface with @MapperConfig annotation. It works nicely with mapper MaperA in one project - everything is generated without any problems. But I want to use the same configutation in MaperB, that extends MaperA. When I try to do this, I receive a NullPointerException, even when MaperB does not override any Mappings. Here is a stacktrace:
[ERROR] diagnostic: MaperB:11: Internal error in the mapping processor: java.lang.NullPointerException
at org.mapstruct.ap.internal.model.source.SourceReference.copyForInheritanceTo(SourceReference.java:286)
at org.mapstruct.ap.internal.model.source.Mapping.copyForInheritanceTo(Mapping.java:360)
at org.mapstruct.ap.internal.model.source.MappingOptions.applyInheritedOptions(MappingOptions.java:179)
at org.mapstruct.ap.internal.processor.MapperCreationProcessor.mergeInheritedOptions(MapperCreationProcessor.java:413)
at org.mapstruct.ap.internal.processor.MapperCreationProcessor.getMappingMethods(MapperCreationProcessor.java:263)
at org.mapstruct.ap.internal.processor.MapperCreationProcessor.getMapper(MapperCreationProcessor.java:146)
at org.mapstruct.ap.internal.processor.MapperCreationProcessor.process(MapperCreationProcessor.java:117)
at org.mapstruct.ap.internal.processor.MapperCreationProcessor.process(MapperCreationProcessor.java:76)
at org.mapstruct.ap.MappingProcessor.process(MappingProcessor.java:270)
at org.mapstruct.ap.MappingProcessor.processMapperTypeElement(MappingProcessor.java:250)
at org.mapstruct.ap.MappingProcessor.processMapperElements(MappingProcessor.java:216)
at org.mapstruct.ap.MappingProcessor.process(MappingProcessor.java:155)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:639)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs(JavacProcessingEnvironment.java:568)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:713)
at com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:999)
at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:739)
at com.sun.tools.javac.main.Main.compile(Main.java:365)
at com.sun.tools.javac.api.JavacTaskImpl.call(JavacTaskImpl.java:127)
at org.bsc.maven.plugin.processor.AbstractAnnotationProcessorMojo.executeWithExceptionsHandled(AbstractAnnotationProcessorMojo.java:545)
at org.bsc.maven.plugin.processor.AbstractAnnotationProcessorMojo.execute(AbstractAnnotationProcessorMojo.java:285)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:132)
[ERROR] diagnostic: MaperB:11: Internal error in the mapping processor: java.lang.NullPointerException
at org.mapstruct.ap.internal.model.source.SourceReference.copyForInheritanceTo(SourceReference.java:286)
at org.mapstruct.ap.internal.model.source.Mapping.copyForInheritanceTo(Mapping.java:360)
at org.mapstruct.ap.internal.model.source.MappingOptions.applyInheritedOptions(MappingOptions.java:179)
at org.mapstruct.ap.internal.processor.MapperCreationProcessor.mergeInheritedOptions(MapperCreationProcessor.java:413)
at org.mapstruct.ap.internal.processor.MapperCreationProcessor.getMappingMethods(MapperCreationProcessor.java:263)
at org.mapstruct.ap.internal.processor.MapperCreationProcessor.getMapper(MapperCreationProcessor.java:146)
at org.mapstruct.ap.internal.processor.MapperCreationProcessor.process(MapperCreationProcessor.java:117)
at org.mapstruct.ap.internal.processor.MapperCreationProcessor.process(MapperCreationProcessor.java:76)
at org.mapstruct.ap.MappingProcessor.process(MappingProcessor.java:270)
at org.mapstruct.ap.MappingProcessor.processMapperTypeElement(MappingProcessor.java:250)
at org.mapstruct.ap.MappingProcessor.processMapperElements(MappingProcessor.java:216)
at org.mapstruct.ap.MappingProcessor.process(MappingProcessor.java:155)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:639)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs(JavacProcessingEnvironment.java:568)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:713)
at com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:999)
at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:739)
at com.sun.tools.javac.main.Main.compile(Main.java:365)
at com.sun.tools.javac.api.JavacTaskImpl.call(JavacTaskImpl.java:127)
at org.bsc.maven.plugin.processor.AbstractAnnotationProcessorMojo.executeWithExceptionsHandled(AbstractAnnotationProcessorMojo.java:545)
at org.bsc.maven.plugin.processor.AbstractAnnotationProcessorMojo.execute(AbstractAnnotationProcessorMojo.java:285)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:132)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:120)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:355)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:155)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:584)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:216)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:160)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
at java.lang.reflect.Method.invoke(Method.java:611)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
[ERROR] error on execute: error during compilation
Could you help me or recommend some workaround?
Thanks in advance
The text was updated successfully, but these errors were encountered:
This is the exact same problem as in #1180. The lines differ, but the content is the same at those lines.
@Alicja-Majewska I'll close this issue, you should follow the linked one instead. @sjaakd said that the issue occurs when you have shared config and non existing properties. Did you get something else before this line? If you are able to provide us with a small example that reproduces the error we would be really grateful.
As for figuring it out. The best would be to make add the mapstruct-processor as a provided dependency, set a break point on the line that throws the NPE and catch it. With IntelliJ you can run the compile goal in debug mode. Then you can see what exactly is null there. I would presume it is either sourceParam, sourceParam.getType() or parameter
@sjaakd it looks like the issue didn't come from 1.2.0, but it was there before 😄 .
Hello,
I have faced a problem with including MappingConfiguration and extending another mapper at the same time. My mapper is pretty complicated, it contains multiple nested mappers. I have configuration collected in interface with
@MapperConfig
annotation. It works nicely with mapper MaperA in one project - everything is generated without any problems. But I want to use the same configutation in MaperB, that extends MaperA. When I try to do this, I receive aNullPointerException
, even when MaperB does not override any Mappings. Here is a stacktrace:Could you help me or recommend some workaround?
Thanks in advance
The text was updated successfully, but these errors were encountered: