Karl Heinz Marbaise created MNG-6170:
----------------------------------------

             Summary: NPE for Multithreaded -T 
                 Key: MNG-6170
                 URL: https://issues.apache.org/jira/browse/MNG-6170
             Project: Maven
          Issue Type: Bug
          Components: core
    Affects Versions: 3.3.9, 3.3.1, 3.2.5, 3.1.1
            Reporter: Karl Heinz Marbaise
            Assignee: Karl Heinz Marbaise
            Priority: Blocker
             Fix For: 3.5.0


Based on the 
[issue|https://github.com/mojohaus/versions-maven-plugin/issues/54] marked for 
the versions-maven-plugin investigation shows that the real cause of this 
problem is located in maven-core. I identified the following point in code as 
culprit for the problem:

MultiThreadedBuilder.java
{code}
        // for each finished project
        for ( int i = 0; i < analyzer.getNumberOfBuilds(); i++ )
        {
            try
            {
                ProjectSegment projectBuild = service.take().get();
                if ( reactorContext.getReactorBuildStatus().isHalted() )
                {
                    break;
                }
                final List<MavenProject> newItemsThatCanBeBuilt =
                    analyzer.markAsFinished( projectBuild.getProject() );
                for ( MavenProject mavenProject : newItemsThatCanBeBuilt )
                {
                    ProjectSegment scheduledDependent = projectBuildList.get( 
mavenProject );
                    logger.debug( "Scheduling: " + scheduledDependent );
                    Callable<ProjectSegment> cb =
                        createBuildCallable( rootSession, scheduledDependent, 
reactorContext, taskSegment, muxer );
                    service.submit( cb );
                }
            }
            catch ( InterruptedException e )
            {
                rootSession.getResult().addException( e );
                break;
            }
            catch ( ExecutionException e )
            {
                // TODO MNG-5766 changes likely made this redundant 
                rootSession.getResult().addException( e );
                break;
            }
        }
{code}

And the problematic part is before the second debugging output line:
{code}
                    ProjectSegment scheduledDependent = projectBuildList.get( 
mavenProject );
                    logger.debug( "Scheduling: " + scheduledDependent );
                    Callable<ProjectSegment> cb =
                        createBuildCallable( rootSession, scheduledDependent, 
reactorContext, taskSegment, muxer );
                    service.submit( cb );
{code}
Cause it happens that the {{scheduledDependent}} could be null which will cause 
the issue.




--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to