You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "John Allen (JIRA)" <ji...@codehaus.org> on 2007/07/28 20:50:13 UTC
[jira] Created: (MJAVADOC-139) NPE out of
AbstractJavadocMojo::getSourcePaths() on multimodule project using
aggregate
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
[jira] Closed: (MJAVADOC-139) NPE out of
AbstractJavadocMojo::getSourcePaths() on multimodule project using
aggregate
Posted by "Vincent Siveton (JIRA)" <ji...@codehaus.org>.
[ http://jira.codehaus.org/browse/MJAVADOC-139?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Vincent Siveton closed MJAVADOC-139.
------------------------------------
Resolution: Fixed
Fixed
> 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
> Affects Versions: 2.3
> Reporter: John Allen
> Assignee: Vincent Siveton
> Fix For: 2.4
>
>
> 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
[jira] Updated: (MJAVADOC-139) NPE out of
AbstractJavadocMojo::getSourcePaths() on multimodule project using
aggregate
Posted by "Vincent Siveton (JIRA)" <ji...@codehaus.org>.
[ http://jira.codehaus.org/browse/MJAVADOC-139?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Vincent Siveton updated MJAVADOC-139:
-------------------------------------
Assignee: Vincent Siveton
Affects Version/s: 2.3
Fix Version/s: 2.4
updated version
> 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
> Affects Versions: 2.3
> Reporter: John Allen
> Assignee: Vincent Siveton
> Fix For: 2.4
>
>
> 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