12

mvn compilation using Idea works fine.

Fails during App.main start.

Works well on older Idea on other PC on Ubuntu.

ENV:

  • Intellij 2020.3.2 as admin;

  • Java 15.02;

  • Windows 10 x64;

  • latest mapstruct.

How to fix this?

D:\back\src\main\java\io\x\mapper\Mapper.java:15:8 java: Internal error in the mapping processor: java.lang.NullPointerException: Cannot invoke "java.net.URL.toExternalForm()" because "resource" is null
at org.mapstruct.ap.internal.processor.DefaultVersionInformation.createManifestUrl(DefaultVersionInformation.java:182)
at org.mapstruct.ap.internal.processor.DefaultVersionInformation.openManifest(DefaultVersionInformation.java:153)
at org.mapstruct.ap.internal.processor.DefaultVersionInformation.getLibraryName(DefaultVersionInformation.java:129)
at org.mapstruct.ap.internal.processor.DefaultVersionInformation.getCompiler(DefaultVersionInformation.java:122)
at org.mapstruct.ap.internal.processor.DefaultVersionInformation.fromProcessingEnvironment(DefaultVersionInformation.java:95)
at org.mapstruct.ap.internal.processor.DefaultModelElementProcessorContext.<init>(DefaultModelElementProcessorContext.java:50)
at org.mapstruct.ap.MappingProcessor.processMapperElements(MappingProcessor.java:218)
at org.mapstruct.ap.MappingProcessor.process(MappingProcessor.java:156)
at jdk.internal.reflect.GeneratedMethodAccessor207.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:564)
at org.jetbrains.jps.javac.APIWrappers$1.invoke(APIWrappers.java:248)
at lombok.launch.AnnotationProcessorHider$AnnotationProcessor.process(Unknown Source)
at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:1025)
at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs(JavacProcessingEnvironment.java:940)
at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.run(JavacProcessingEnvironment.java:1269)
at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:1383)
at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1261)
at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:935)
at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.lambda$doCall$0(JavacTaskImpl.java:104)
at jdk.compiler/com.sun.tools.javac.api.JavacTaskImpl.handleExceptions(JavacTaskImpl.java:147)
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:231)
at org.jetbrains.jps.incremental.java.JavaBuilder.compileJava(JavaBuilder.java:501)
at org.jetbrains.jps.incremental.java.JavaBuilder.compile(JavaBuilder.java:353)
at org.jetbrains.jps.incremental.java.JavaBuilder.doBuild(JavaBuilder.java:277)
at org.jetbrains.jps.incremental.java.JavaBuilder.build(JavaBuilder.java:231)
at org.jetbrains.jps.incremental.IncProjectBuilder.runModuleLevelBuilders(IncProjectBuilder.java:1441)
at org.jetbrains.jps.incremental.IncProjectBuilder.runBuildersForChunk(IncProjectBuilder.java:1100)
at org.jetbrains.jps.incremental.IncProjectBuilder.buildTargetsChunk(IncProjectBuilder.java:1224)
at org.jetbrains.jps.incremental.IncProjectBuilder.buildChunkIfAffected(IncProjectBuilder.java:1066)
at org.jetbrains.jps.incremental.IncProjectBuilder.access$1200(IncProjectBuilder.java:67)
at org.jetbrains.jps.incremental.IncProjectBuilder$BuildParallelizer$1.run(IncProjectBuilder.java:1006)
at com.intellij.util.concurrency.BoundedTaskExecutor.doRun(BoundedTaskExecutor.java:216)
at com.intellij.util.concurrency.BoundedTaskExecutor.access$200(BoundedTaskExecutor.java:27)
at com.intellij.util.concurrency.BoundedTaskExecutor$1.execute(BoundedTaskExecutor.java:195)
at com.intellij.util.ConcurrencyUtil.runUnderThreadName(ConcurrencyUtil.java:208)
at com.intellij.util.concurrency.BoundedTaskExecutor$1.run(BoundedTaskExecutor.java:184)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
at java.base/java.lang.Thread.run(Thread.java:832)
Arthur
  • 575
  • 3
  • 8
  • 16
  • Please properly format your stack trace. Look for the first mention of your code to see the statement in your code that caused the exception. You will find that it is passing a null value to whatever API it invokes. – Jim Garrison Mar 11 '21 at 22:02

4 Answers4

22

In your Intellij IDEA:

File | Settings | Build, Execution, Deployment | Compiler | user-local build process vm options

set this value :

-Djps.track.ap.dependencies=false
saba
  • 332
  • 2
  • 14
11

I had a problem with MapStruct in Intellij 20.3.2. Error Internal error in the mapping processor: java.lang.NullPointerException: Cannot invoke "java.net.URL.toExternalForm()" because "resource" is null[...]. I did a little research and saw that it was enough to just change the version in pom.xml. Here on the documentation website we can see the package installation configuration:https://mapstruct.org/documentation/installation/ There was still an error in the following excerpt:

  <groupId>org.mapstruct</groupId>

  <artifactId>mapstruct</artifactId>

  <version>**${org.mapstruct.version}**</version>

Finally, placing the following version in 1.4.2.Final ran the application smoothly.

AnaMelem
  • 111
  • 1
  • 4
4

Please update to the current IDE and MapStruct versions. This issue was fixed long time ago.

See also this answer for the workaround.

CrazyCoder
  • 389,263
  • 172
  • 990
  • 904
  • Hello, Serge! No, it was not fixed. I have latest Idea as you see and mapstruct. – Arthur Mar 11 '21 at 22:14
  • 2
    What MapStruct version do you use? Does `-Djps.track.ap.dependencies=false` option help? – CrazyCoder Mar 11 '21 at 22:15
  • 1.4.2.Final. How to apply mentioned option? Preferences -> Build, Execution, Deployment -> Compiler User-local build process VM options (overrides Shared options): -Djps.track.ap.dependencies=false=========> new error. – Arthur Mar 11 '21 at 22:24
  • 1
    Feel free to report at https://github.com/mapstruct/mapstruct/issues. – CrazyCoder Mar 11 '21 at 22:25
  • Make sure that you also update the mapstruct-processor version as well. This bug has been fixed a while ago in MapStruct – Filip Mar 11 '21 at 23:35
  • updating to latest version of mapstruct-processor fixed this error for me... – solujic Jan 30 '23 at 10:04
1

Please update newVersion mapstruct

<dependency>
    <groupId>org.mapstruct</groupId>
    <artifactId>mapstruct</artifactId>
    <version>1.4.2.Final</version>
</dependency>
ddthien
  • 1
  • 2