NPE out of AbstractJavadocMojo::getSourcePaths() on multimodule project using
aggregate
---------------------------------------------------------------------------------------
Key: MJAVADOC-139
URL: http://jira.codehaus.org/browse/MJAVADOC-139
Project: Maven 2.x Javadoc Plugin
Issue Type: Bug
Reporter: John Allen
My main concern is this area of the code:
AbstractJavadocMojo::getSourcePaths()
{code}
/**
* Method to get the source paths. If no source path is specified in the
parameter, the compile source roots
* of the project will be used.
*
* @return a List of the project source paths
*/
protected List getSourcePaths()
{
List sourcePaths;
if ( StringUtils.isEmpty( sourcepath ) )
{
sourcePaths = new ArrayList( getProjectSourceRoots( project ) );
if ( project.getExecutionProject() != null )
{
sourcePaths.addAll( getExecutionProjectSourceRoots( project ) );
}
if ( getJavadocDirectory() != null )
{
File javadocDir = getJavadocDirectory();
if ( javadocDir.exists() && javadocDir.isDirectory() )
{
sourcePaths.add( getJavadocDirectory().getAbsolutePath() );
}
}
if ( aggregate && project.isExecutionRoot() )
{
for ( Iterator i = reactorProjects.iterator(); i.hasNext(); )
{
MavenProject subProject = (MavenProject) i.next();
if ( subProject != project )
{
List sourceRoots = getProjectSourceRoots( subProject );
{code}
*HERE WE CHECK IF subProject.getExecutionProject() IS NOT EQUAL TO NULL*
{code}
if ( subProject.getExecutionProject() != null )
{
sourceRoots.addAll( getExecutionProjectSourceRoots(
subProject ) );
}
ArtifactHandler artifactHandler =
subProject.getArtifact().getArtifactHandler();
if ( "java".equals( artifactHandler.getLanguage() ) )
{
sourcePaths.addAll( sourceRoots );
}
{code}
*BUT NOW WE TRY AND DEREFERENCE subProject.getExecutionProject() REGARDLESS -
RESULTS IN NPE*
{code}
String javadocDirRelative = PathUtils.toRelative(
project.getBasedir(), getJavadocDirectory().getAbsolutePath() );
File javadocDir = new File(
subProject.getExecutionProject().getBasedir(), javadocDirRelative );
if ( javadocDir.exists() && javadocDir.isDirectory() )
{
sourcePaths.add( javadocDir.getAbsolutePath() );
}
}
}
}
sourcePaths = pruneSourceDirs( sourcePaths );
}
else
{
sourcePaths = new ArrayList( Arrays.asList( sourcepath.split( "[;]"
) ) );
if ( getJavadocDirectory() != null )
{
sourcePaths.add( getJavadocDirectory().getAbsolutePath() );
}
sourcePaths = pruneSourceDirs( sourcePaths );
}
return sourcePaths;
}
{code}
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira