[ https://issues.apache.org/jira/browse/SUREFIRE-1837?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17189301#comment-17189301 ]
Ruslan Sibgatullin commented on SUREFIRE-1837: ---------------------------------------------- Update: After discovering SUREFIRE-1809 and applying {code:java} <useModulePath>false</useModulePath> {code} and changing the build command to {code:java} mvn test -e -T 1 {code} described issue is no longer happening. > NullPointerException at AbstractSurefireMojo$ClasspathCache.setCachedClasspath > ------------------------------------------------------------------------------ > > Key: SUREFIRE-1837 > URL: https://issues.apache.org/jira/browse/SUREFIRE-1837 > Project: Maven Surefire > Issue Type: Bug > Components: Maven Surefire Plugin > Affects Versions: 3.0.0-M5 > Environment: 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 > Jenkins ver. 2.204.6 on Ubuntu 18 > Reporter: Ruslan Sibgatullin > Priority: Major > > 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 my_project: 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} > With exactly the same setup but using Java 8 this exception doesn't occur. > 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} > 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)