jira-importer commented on issue #107:
URL: 
https://github.com/apache/maven-war-plugin/issues/107#issuecomment-2967842934

   **[Jonathan 
Ramsey](https://issues.apache.org/jira/secure/ViewProfile.jspa?name=jonathan.ramsey)**
 commented
   
   This problem occurs when you run any of the goals on version 2.1-alpha-2 of 
the maven-war-plugin after running any of the goals on version 2.1-alpha-1, 
without a clean of the project in between. The change in version might occur 
without you knowing if you hadn't explicitly set the version of 
maven-war-plugin in your pom.xml. The first war goal is executed prior to the 
release of 2.1-alpha-2, and the second war goal is executed after 2.1-alpha-2 
was released.
   
   The problem is caused because a dependenciesInfo variable was added to 
org.apache.maven.plugin.war.util.WebappStructure in 
[r606628](http://svn.apache.org/viewvc/maven/plugins/tags/maven-war-plugin-2.1-alpha-2/src/main/java/org/apache/maven/plugin/war/util/WebappStructure.java?view=diff&r1=606627&r2=606628),
 but no defensive initialization of the variable was added to the readResolve() 
method. r606628 was released in maven-war-plugin version 2.1-alpha-2.
   
   When one of the war goals is executed, maven-war-plugin 2.1-alpha-1 uses 
XStream to serialize a WebappStructure object to 
target\war\work\webapp-cache.xml. Provided you haven't cleaned your project, 
when you next run one of the war goals the maven-war-plugin 2.1-alpha-2 
deserializes the WebappStructure object from target\war\work\webapp-cache.xml. 
The dependenciesInfo variable is not initialized with a value because the 
webapp-cache.xml doesn't contain a \<dependenciesInfo> element and the 
readResolve() method doesn't initialize the variable defensively. When the 
WebappStructure.getDependencies() method is invoked, dependenciesInfo is 
dereferenced which triggers a NullPointerException.
   
   Steps to reproduce:
   1. mvn archetype:create -DarchetypeArtifactId=maven-archetype-webapp 
-DarchetypeVersion=1.0 -DgroupId=test -DartifactId=webapp
   2. cd webapp
   3. Add this to \<build> in pom.xml.
      \<plugins>
      \<plugin>
      \<groupId>org.apache.maven.plugins\</groupId>
      \<artifactId>maven-war-plugin\</artifactId>
      \<version>2.1-alpha-1\</version>
      \</plugin>
      \</plugins>
   4. mvn package
   5. Change version from 2.1-alpha-1 to 2.1-alpha-2
   6. mvn package
      You reproduce the error:
      [INFO] Scanning for projects...
      [INFO] 
----------------------------------------------------------------------------
      [INFO] Building webapp Maven Webapp
      [INFO]    task-segment: [package]
      [INFO] 
----------------------------------------------------------------------------
      [INFO] [resources:resources]
      [INFO] Using default encoding to copy filtered resources.
      [INFO] [compiler:compile]
      [INFO] No sources to compile
      [INFO] [resources:testResources]
      [INFO] Using default encoding to copy filtered resources.
      [INFO] [compiler:testCompile]
      [INFO] No sources to compile
      [INFO] [surefire:test]
      [INFO] No tests to run.
      [INFO] [war:war]
      [INFO] Packaging webapp
      [INFO] Assembling webapp[webapp] in 
[C:\WebTeam\projects\webapp\target\webapp]
      [INFO] 
------------------------------------------------------------------------
      [ERROR] FATAL ERROR
      [INFO] 
------------------------------------------------------------------------
      [INFO] null
      [INFO] 
------------------------------------------------------------------------
      [INFO] Trace
      java.lang.NullPointerException
      at 
org.apache.maven.plugin.war.util.WebappStructure.getDependencies(WebappStructure.java:109)
      at 
org.apache.maven.plugin.war.util.WebappStructure.analyseDependencies(WebappStructure.java:288)
      at 
org.apache.maven.plugin.war.packaging.DependenciesAnalysisPackagingTask.performPackaging(DependenciesAnalysisPackagingTask.java:46)
      at 
org.apache.maven.plugin.war.AbstractWarMojo.buildWebapp(AbstractWarMojo.java:439)
      at 
org.apache.maven.plugin.war.AbstractWarMojo.buildExplodedWebapp(AbstractWarMojo.java:375)
      at org.apache.maven.plugin.war.WarMojo.performPackaging(WarMojo.java:181)
      at org.apache.maven.plugin.war.WarMojo.execute(WarMojo.java:143)
      at 
org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:443)
      at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:539)
      at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:480)
      at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:459)
      at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:311)
      at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:278)
      at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:143)
      at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:334)
      at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:125)
      at org.apache.maven.cli.MavenCli.main(MavenCli.java:280)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:597)
      at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
      at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
      at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
      at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
      [INFO] 
------------------------------------------------------------------------
      [INFO] Total time: 3 seconds
      [INFO] Finished at: Mon Sep 08 14:14:58 BST 2008
      [INFO] Final Memory: 8M/63M
      [INFO] 
------------------------------------------------------------------------
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@maven.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to