Ben DeLillo created MWAR-439:
--------------------------------

             Summary: WAR Plugin 3.3.1 hits NPE when exploding if maven session 
start time is null
                 Key: MWAR-439
                 URL: https://issues.apache.org/jira/browse/MWAR-439
             Project: Maven WAR Plugin
          Issue Type: Bug
    Affects Versions: 3.3.1
         Environment: Windows 10
Eclipse Version: 20200910-1200
m2e Version: 1.16.1.20200710-1008
            Reporter: Ben DeLillo


I don't have a distributable repro case, but I can say that in my multi-module 
project, when the exploded goal is invoked by eclipse the following error 
occurs:

{{}}
{code:java}
Execution default of goal 
org.apache.maven.plugins:maven-war-plugin:3.3.1:exploded failed. 
(org.apache.maven.plugins:maven-war-plugin:3.3.1:exploded:default:process-resources)
 {code}
{{}}

The stack trace for this error is

{{}}
{code:java}
org.apache.maven.plugin.PluginExecutionException: Execution default of goal 
org.apache.maven.plugins:maven-war-plugin:3.3.1:exploded failed. at 
org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:148)
 at 
org.eclipse.m2e.core.internal.embedder.MavenImpl.execute(MavenImpl.java:332) at 
org.eclipse.m2e.core.internal.embedder.MavenImpl.lambda$8(MavenImpl.java:1380) 
at 
org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.executeBare(MavenExecutionContext.java:179)
 at 
org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:114)
 at 
org.eclipse.m2e.core.internal.embedder.MavenImpl.execute(MavenImpl.java:1379) 
at 
org.eclipse.m2e.core.project.configurator.MojoExecutionBuildParticipant.build(MojoExecutionBuildParticipant.java:54)
 at 
org.eclipse.m2e.core.internal.builder.MavenBuilderImpl.build(MavenBuilderImpl.java:135)
 at 
org.eclipse.m2e.core.internal.builder.MavenBuilder$1.method(MavenBuilder.java:169)
 at 
org.eclipse.m2e.core.internal.builder.MavenBuilder$1.method(MavenBuilder.java:1)
 at 
org.eclipse.m2e.core.internal.builder.MavenBuilder$BuildMethod.lambda$1(MavenBuilder.java:114)
 at 
org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.executeBare(MavenExecutionContext.java:179)
 at 
org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:114)
 at 
org.eclipse.m2e.core.internal.builder.MavenBuilder$BuildMethod.lambda$0(MavenBuilder.java:105)
 at 
org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.executeBare(MavenExecutionContext.java:179)
 at 
org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:153)
 at 
org.eclipse.m2e.core.internal.embedder.MavenExecutionContext.execute(MavenExecutionContext.java:101)
 at 
org.eclipse.m2e.core.internal.builder.MavenBuilder$BuildMethod.execute(MavenBuilder.java:88)
 at 
org.eclipse.m2e.core.internal.builder.MavenBuilder.build(MavenBuilder.java:197) 
at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:832) 
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45) at 
org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:220) 
at 
org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:263) 
at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:316) 
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45) at 
org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:319) 
at 
org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:371)
 at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:392) 
at 
org.eclipse.core.internal.resources.Workspace.buildInternal(Workspace.java:515) 
at org.eclipse.core.internal.resources.Workspace.build(Workspace.java:405) at 
org.eclipse.ui.actions.GlobalBuildAction$1.run(GlobalBuildAction.java:180) at 
org.eclipse.core.internal.jobs.Worker.run(Worker.java:63) Caused by: 
java.lang.NullPointerException at 
org.apache.maven.plugins.war.AbstractWarMojo$DefaultWarPackagingContext$1.visitFile(AbstractWarMojo.java:661)
 at 
org.apache.maven.plugins.war.AbstractWarMojo$DefaultWarPackagingContext$1.visitFile(AbstractWarMojo.java:656)
 at java.base/java.nio.file.Files.walkFileTree(Files.java:2804) at 
java.base/java.nio.file.Files.walkFileTree(Files.java:2876) at 
org.apache.maven.plugins.war.AbstractWarMojo$DefaultWarPackagingContext.<init>(AbstractWarMojo.java:655)
 at 
org.apache.maven.plugins.war.AbstractWarMojo.buildWebapp(AbstractWarMojo.java:520)
 at 
org.apache.maven.plugins.war.AbstractWarMojo.buildExplodedWebapp(AbstractWarMojo.java:453)
 at 
org.apache.maven.plugins.war.WarExplodedMojo.execute(WarExplodedMojo.java:43) 
at 
org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:137)
 ... 31 more pom.xml /my-legacy-app line 1753 Maven Build Problem{code}
{{}}

I've debugged into AbstractWarMojo.visitFile, and on line 661 
session.getStartTime() is null, so the call to getTime() throws an NPE. 
Attempting to track down why the start time is null led me to MavenImpl, at 
which point I've gotten a bit stuck trying to further track down the issue. I 
think it was pointing to something in MavenExecutionContext, but I'm not 
entirely sure.

The check against getStartTime was introduced in 3.3.1 so switching to 3.3.0 
unblocks me for now.

 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to