You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Karl Heinz Marbaise (JIRA)" <ji...@apache.org> on 2017/02/12 12:01:41 UTC

[jira] [Created] (MNG-6170) NPE for Multithreaded -T

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)