Ruslan Sibgatullin created SUREFIRE-1837:
--------------------------------------------
Summary: NullPointerException at
AbstractSurefireMojo$ClasspathCache.setCachedClasspath
Key: SUREFIRE-1837
URL: https://issues.apache.org/jira/browse/SUREFIRE-1837
Project: Maven Surefire
Issue Type: Bug
Affects Versions: 3.0.0-M5
Reporter: Ruslan Sibgatullin
While migrating a rather old and big project from Java 8 to Java 11 the
following exception happens occasionally (once in 3-4 builds):
{code:java}
[ERROR] Failed to execute goal
org.apache.maven.plugins:maven-surefire-plugin:3.0.0-M5:test (default-test) on
project cachereloader-validation: Execution default-test of goal
org.apache.maven.plugins:maven-surefire-plugin:3.0.0-M5:test failed.:
NullPointerException -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal
org.apache.maven.plugins:maven-surefire-plugin:3.0.0-M5:test (default-test) on
project cachereloader-validation: Execution default-test of goal
org.apache.maven.plugins:maven-surefire-plugin:3.0.0-M5:test failed.
at org.apache.maven.lifecycle.internal.MojoExecutor.execute
(MojoExecutor.java:215)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute
(MojoExecutor.java:156)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute
(MojoExecutor.java:148)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject
(LifecycleModuleBuilder.java:117)
at
org.apache.maven.lifecycle.internal.builder.multithreaded.MultiThreadedBuilder$1.call
(MultiThreadedBuilder.java:190)
at
org.apache.maven.lifecycle.internal.builder.multithreaded.MultiThreadedBuilder$1.call
(MultiThreadedBuilder.java:186)
at java.util.concurrent.FutureTask.run (FutureTask.java:264)
at java.util.concurrent.Executors$RunnableAdapter.call (Executors.java:515)
at java.util.concurrent.FutureTask.run (FutureTask.java:264)
at java.util.concurrent.ThreadPoolExecutor.runWorker
(ThreadPoolExecutor.java:1128)
at java.util.concurrent.ThreadPoolExecutor$Worker.run
(ThreadPoolExecutor.java:628)
at java.lang.Thread.run (Thread.java:834)
Caused by: org.apache.maven.plugin.PluginExecutionException: Execution
default-test of goal
org.apache.maven.plugins:maven-surefire-plugin:3.0.0-M5:test failed.
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo
(DefaultBuildPluginManager.java:148)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute
(MojoExecutor.java:210)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute
(MojoExecutor.java:156)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute
(MojoExecutor.java:148)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject
(LifecycleModuleBuilder.java:117)
at
org.apache.maven.lifecycle.internal.builder.multithreaded.MultiThreadedBuilder$1.call
(MultiThreadedBuilder.java:190)
at
org.apache.maven.lifecycle.internal.builder.multithreaded.MultiThreadedBuilder$1.call
(MultiThreadedBuilder.java:186)
at java.util.concurrent.FutureTask.run (FutureTask.java:264)
at java.util.concurrent.Executors$RunnableAdapter.call (Executors.java:515)
at java.util.concurrent.FutureTask.run (FutureTask.java:264)
at java.util.concurrent.ThreadPoolExecutor.runWorker
(ThreadPoolExecutor.java:1128)
at java.util.concurrent.ThreadPoolExecutor$Worker.run
(ThreadPoolExecutor.java:628)
at java.lang.Thread.run (Thread.java:834)
Caused by: java.lang.NullPointerException
at
org.apache.maven.plugin.surefire.AbstractSurefireMojo$ClasspathCache.setCachedClasspath
(AbstractSurefireMojo.java:4121)
at
org.apache.maven.plugin.surefire.AbstractSurefireMojo$ClasspathCache.access$200
(AbstractSurefireMojo.java:4102)
at
org.apache.maven.plugin.surefire.AbstractSurefireMojo.newStartupConfigWithClasspath
(AbstractSurefireMojo.java:1913)
at
org.apache.maven.plugin.surefire.AbstractSurefireMojo.createStartupConfiguration
(AbstractSurefireMojo.java:1894)
at org.apache.maven.plugin.surefire.AbstractSurefireMojo.createForkStarter
(AbstractSurefireMojo.java:2374)
at org.apache.maven.plugin.surefire.AbstractSurefireMojo.executeProvider
(AbstractSurefireMojo.java:1310)
at
org.apache.maven.plugin.surefire.AbstractSurefireMojo.executeAfterPreconditionsChecked
(AbstractSurefireMojo.java:1159)
at org.apache.maven.plugin.surefire.AbstractSurefireMojo.execute
(AbstractSurefireMojo.java:932)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo
(DefaultBuildPluginManager.java:137)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute
(MojoExecutor.java:210)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute
(MojoExecutor.java:156)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute
(MojoExecutor.java:148)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject
(LifecycleModuleBuilder.java:117)
at
org.apache.maven.lifecycle.internal.builder.multithreaded.MultiThreadedBuilder$1.call
(MultiThreadedBuilder.java:190)
at
org.apache.maven.lifecycle.internal.builder.multithreaded.MultiThreadedBuilder$1.call
(MultiThreadedBuilder.java:186)
at java.util.concurrent.FutureTask.run (FutureTask.java:264)
at java.util.concurrent.Executors$RunnableAdapter.call (Executors.java:515)
at java.util.concurrent.FutureTask.run (FutureTask.java:264)
at java.util.concurrent.ThreadPoolExecutor.runWorker
(ThreadPoolExecutor.java:1128)
at java.util.concurrent.ThreadPoolExecutor$Worker.run
(ThreadPoolExecutor.java:628)
at java.lang.Thread.run (Thread.java:834){code}
The tests run on Jenkins ver. 2.204.6 like this:
{code:java}
realtimeJUnit('**/target/surefire-reports/*.xml') {
sh "mvn test -e -T 1C"
}
{code}
{code:java}
mvn --version
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: /opt/apache-maven-3.6.3
Java version: 11.0.8, vendor: Amazon.com Inc., runtime:
/usr/lib/jvm/java-11-amazon-corretto
{code}
With exactly the same setup but using Java 8 this exception doesn't occur.
Also, with the plugin version 2.22.2 there is no exception but also
occasionally some random tests fail with
{code:java}
java.lang.NoClassDefFoundError:
....
Caused by: java.lang.ClassNotFoundException:
{code}
even thought classes are located right next to each other (sometimes it even
fails to find inner static class)
Plugin configuration
{code:java}
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${surefire.version}</version>
<configuration>
<argLine>@{jacoco.agent.argLine} -Xmx512m -Xms256m
${custom.test.argLine}</argLine>
<includes>
<include>**/*Test.java</include>
<include>**/*Specification.java</include>
</includes>
<excludes>
<exclude>**/*IntegrationTest.java</exclude>
</excludes>
<forkCount>1</forkCount>
<forkedProcessTimeoutInSeconds>${test.timeout}</forkedProcessTimeoutInSeconds>
<runOrder>random</runOrder>
<reuseForks>true</reuseForks>
<rerunFailingTestsCount>1</rerunFailingTestsCount>
<testFailureIgnore>true</testFailureIgnore>
</configuration>
</plugin>
{code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)