[ 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