Author: sisbell
Date: Tue Feb 3 21:50:27 2009
New Revision: 740468
URL: http://svn.apache.org/viewvc?rev=740468&view=rev
Log:
MNG-3919: NPE in DefaultLifecycleBindingManager
Added:
maven/components/trunk/maven-embedder/src/test/projects/invalid-goal/
maven/components/trunk/maven-embedder/src/test/projects/invalid-goal/pom.xml
Modified:
maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/binding/DefaultLifecycleBindingManager.java
maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/cli/CLIReportingUtils.java
maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderTest.java
Modified:
maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/binding/DefaultLifecycleBindingManager.java
URL:
http://svn.apache.org/viewvc/maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/binding/DefaultLifecycleBindingManager.java?rev=740468&r1=740467&r2=740468&view=diff
==============================================================================
---
maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/binding/DefaultLifecycleBindingManager.java
(original)
+++
maven/components/trunk/maven-core/src/main/java/org/apache/maven/lifecycle/binding/DefaultLifecycleBindingManager.java
Tue Feb 3 21:50:27 2009
@@ -248,6 +248,12 @@
}
MojoDescriptor mojoDescriptor =
pluginDescriptor.getMojo( goal );
+ if(mojoDescriptor == null)
+ {
+ throw new
LifecycleSpecificationException( "Mojo Descriptor for goal is invalid: Plugin =
"
+ + plugin.getKey() + ",
Plugin Descriptor = "
+ +
pluginDescriptor.getPluginLookupKey() +", Goal = " + goal);
+ }
phase = mojoDescriptor.getPhase();
logger.debug( "Phase from plugin
descriptor: " + mojoDescriptor.getFullGoalName() + " is: " + phase );
Modified:
maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/cli/CLIReportingUtils.java
URL:
http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/cli/CLIReportingUtils.java?rev=740468&r1=740467&r2=740468&view=diff
==============================================================================
---
maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/cli/CLIReportingUtils.java
(original)
+++
maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/cli/CLIReportingUtils.java
Tue Feb 3 21:50:27 2009
@@ -264,18 +264,20 @@
handleGenericException( e, showStackTraces, writer );
MavenProject project = e.getProject();
-
- writer.write( NEWLINE );
- writer.write( "While building project with id: " );
- writer.write( project.getId() );
- writer.write( NEWLINE );
- if ( project.getFile() != null )
+ if(project != null)
{
- writer.write( "Project File: " );
- writer.write( project.getFile().getAbsolutePath() );
+ writer.write( NEWLINE );
+ writer.write( "While building project with id: " );
+ writer.write( project.getId() );
+ writer.write( NEWLINE );
+ if ( project.getFile() != null )
+ {
+ writer.write( "Project File: " );
+ writer.write( project.getFile().getAbsolutePath() );
+ }
+ writer.write( NEWLINE );
}
- writer.write( NEWLINE );
-
+
return true;
}
Modified:
maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderTest.java
URL:
http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderTest.java?rev=740468&r1=740467&r2=740468&view=diff
==============================================================================
---
maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderTest.java
(original)
+++
maven/components/trunk/maven-embedder/src/test/java/org/apache/maven/embedder/MavenEmbedderTest.java
Tue Feb 3 21:50:27 2009
@@ -33,6 +33,7 @@
import org.apache.maven.settings.SettingsConfigurationException;
import org.apache.maven.settings.io.xpp3.SettingsXpp3Reader;
import org.apache.maven.settings.io.xpp3.SettingsXpp3Writer;
+import org.apache.maven.lifecycle.LifecycleSpecificationException;
import org.codehaus.plexus.util.FileUtils;
import org.codehaus.plexus.util.IOUtil;
import org.codehaus.plexus.util.ReaderFactory;
@@ -57,6 +58,7 @@
protected MavenEmbedder maven;
+
protected void setUp()
throws Exception
{
@@ -134,6 +136,30 @@
assertTrue( jar.exists() );
}
+ /*MNG-3919*/
+ public void testWithInvalidGoal()
+ throws Exception
+ {
+ File testDirectory = new File( basedir,
"src/test/projects/invalid-goal" );
+
+ File targetDirectory = new File( basedir,
"target/projects/invalid-goal" );
+
+ FileUtils.copyDirectoryStructure( testDirectory, targetDirectory );
+
+ MavenExecutionRequest request = new
DefaultMavenExecutionRequest().setBaseDirectory( targetDirectory )
+ .setShowErrors( true ).setGoals( Arrays.asList( new
String[]{"validate"} ) );
+
+ MavenExecutionResult result = maven.execute( request );
+ List exceptions = result.getExceptions();
+ assertEquals("Incorrect number of exceptions", 1, exceptions.size());
+
+ Iterator it = exceptions.iterator();
+ if( (it.next() instanceof NullPointerException))
+ {
+ fail("Null Pointer on Exception");
+ }
+ }
+
public void testExecutionUsingAPomFile()
throws Exception
{
Added:
maven/components/trunk/maven-embedder/src/test/projects/invalid-goal/pom.xml
URL:
http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/test/projects/invalid-goal/pom.xml?rev=740468&view=auto
==============================================================================
---
maven/components/trunk/maven-embedder/src/test/projects/invalid-goal/pom.xml
(added)
+++
maven/components/trunk/maven-embedder/src/test/projects/invalid-goal/pom.xml
Tue Feb 3 21:50:27 2009
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<project>
+ <modelVersion>4.0.0</modelVersion>
+
+ <groupId>org.apache.maven.its.mng</groupId>
+ <artifactId>test1</artifactId>
+ <version>1.0-SNAPSHOT</version>
+
+ <packaging>jar</packaging>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-site-plugin</artifactId>
+ <version>2.0-beta-7</version>
+
+ <executions>
+ <execution>
+ <goals>
+ <goal>invalid-goal</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+
+ </plugins>
+ </build>
+</project>