[
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