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