[ 
https://issues.apache.org/jira/browse/MCOMPILER-355?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16565714#comment-16565714
 ] 

Robert Scholte commented on MCOMPILER-355:
------------------------------------------

I've been able to reproduce the NPE. But there's something smelly about this 
project. You're putting a pom on the classpath/modulepath. Up until now Maven 
used to simply it on the classpath, even though it doesn't make sense (I know 
it'll pick up all its dependencies, but that's an awkward pattern). Now with 
the module descriptor, every file needs to be analyzed to figure out the module 
name. That's not possible for a pom.
So we have a couple of options: verify that only jars are analyzed. Or break 
the build with the message that only jars and directories are allowed on the 
classpath.

> NPE in CompilerMojo.preparePaths on exception
> ---------------------------------------------
>
>                 Key: MCOMPILER-355
>                 URL: https://issues.apache.org/jira/browse/MCOMPILER-355
>             Project: Maven Compiler Plugin
>          Issue Type: Bug
>         Environment: ubunutu 18.04.
>            Reporter: Brett Sutton
>            Priority: Major
>         Attachments: testpom.zip
>
>
> I'm getting:
>  
> {code:java}
>  
> Caused by: java.lang.NullPointerException
>  at org.apache.maven.plugin.compiler.CompilerMojo.preparePaths 
> (CompilerMojo.java:244)
>  at org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute 
> (AbstractCompilerMojo.java:787)
>  at org.apache.maven.plugin.compiler.CompilerMojo.execute 
> (CompilerMojo.java:188)
>  at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo 
> (DefaultBuildPluginManager.java:134)
>  at org.apache.maven.lifecycle.internal.MojoExecutor.execute 
> (MojoExecutor.java:208)
>  at org.apache.maven.lifecycle.internal.MojoExecutor.execute 
> (MojoExecutor.java:154)
> {code}
>  
> Appears to be caused by the exception handling assuming the 'cause' will be 
> non-null:
>     line 244 is:   
> {code:java}
>  243 Throwable cause = pathException.getValue().getCause();
>  244 while ( cause.getCause() != null )
>  245 { 
>  246     cause = cause.getCause(); 
>  247 }{code}
>  
> Clearly in some cases pathException.getValue().getCause() is returning null.
>  This occurs when I try to build a java 10 project using:
> {code:java}
> mvn deploy{code}
>  
> I've narrowed the problem down to this dependancy:
> {code:java}
> <!-- https://mvnrepository.com/artifact/org.javamoney/moneta --> <dependency>
>  <groupId>org.javamoney</groupId>
>  <artifactId>moneta</artifactId>
>  <version>1.3</version>
>  <type>pom</type>
>  </dependency>{code}
>  If you remove the above dependency then the problem goes away.
> So there is likely to be two problems here. The initial NPE which should be 
> easy to fix and then possibly the root cause of the exception.
> Full pom is:
> {code:java}
> <project xmlns="http://maven.apache.org/POM/4.0.0";
>  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
> http://maven.apache.org/xsd/maven-4.0.0.xsd";>
>  <modelVersion>4.0.0</modelVersion>
>  <groupId>au.com.noojee</groupId>
>  <artifactId>noojeebilling.api</artifactId>
>  <version>1.4-SNAPSHOT</version>
>  <properties>
>  </properties>
>  <build>
>  <sourceDirectory>src/main/java</sourceDirectory>
>  <plugins>
>  <plugin>
>  <artifactId>maven-compiler-plugin</artifactId>
>  <version>3.8.0</version>
>  <configuration>
>  <release>10</release>
>  </configuration>
>  </plugin>
>  </plugins>
> <extensions>
>  <extension>
>  <groupId>io.packagecloud.maven.wagon</groupId>
>  <artifactId>maven-packagecloud-wagon</artifactId>
>  <version>0.0.6</version>
>  </extension>
>  </extensions>
>  </build>
> <distributionManagement>
>  <repository>
>  <id>noojee-internal</id>
>  <url>packagecloud+https://packagecloud.io/noojee/internal</url>
>  </repository>
>  <snapshotRepository>
>  <id>noojee-internal</id>
>  <url>packagecloud+https://packagecloud.io/noojee/internal</url>
>  </snapshotRepository>
>  </distributionManagement>
>  
> <dependencies>
>  <!-- https://mvnrepository.com/artifact/com.google.code.gson/gson -->
>  <dependency>
>  <groupId>com.google.code.gson</groupId>
>  <artifactId>gson</artifactId>
>  <version>2.8.5</version>
>  </dependency>
> <!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core 
> -->
>  <dependency>
>  <groupId>org.apache.logging.log4j</groupId>
>  <artifactId>log4j-core</artifactId>
>  <version>2.9.1</version>
>  </dependency>
> <!-- https://mvnrepository.com/artifact/org.javamoney/moneta -->
>  <dependency>
>  <groupId>org.javamoney</groupId>
>  <artifactId>moneta</artifactId>
>  <version>1.3</version>
>  <type>pom</type>
>  </dependency>
>  <!-- https://mvnrepository.com/artifact/org.bouncycastle/bcprov-jdk15on -->
>  <dependency>
>  <groupId>org.bouncycastle</groupId>
>  <artifactId>bcprov-jdk15on</artifactId>
>  <version>1.59</version>
>  </dependency>
> <dependency>
>  <groupId>junit</groupId>
>  <artifactId>junit</artifactId>
>  <version>4.11</version>
>  <scope>test</scope>
>  </dependency>
>  
> </dependencies>
> </project>
> {code}
>  
>  
>  
>  
>  
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to