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:04:41 UTC
[jira] [Updated] (MNG-6170) NPE for Multithreaded -T
[ https://issues.apache.org/jira/browse/MNG-6170?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Karl Heinz Marbaise updated MNG-6170:
-------------------------------------
Description:
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 looks like a regression, cause in Maven 3.0.5 it works without any issue.
was:
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.
> 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.1.1, 3.2.5, 3.3.1, 3.3.9
> 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 looks like a regression, cause in Maven 3.0.5 it works without any issue.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)