mirror of https://github.com/apache/maven.git
[MNG-6170] NPE in cases using Multithreaded -T X versions:set
-DnewVersion=1.0-SNAPSHOT o In some cases the code will return a null which should not be scheduled.
This commit is contained in:
parent
587317b009
commit
7cdff43aba
|
@ -55,6 +55,7 @@
|
|||
* @since 3.0
|
||||
* @author Kristian Rosenvold
|
||||
* Builds one or more lifecycles for a full module
|
||||
* NOTE: This class is not part of any public api and can be changed or deleted without prior notice.
|
||||
*/
|
||||
@Component( role = Builder.class, hint = "multithreaded" )
|
||||
public class MultiThreadedBuilder
|
||||
|
@ -67,7 +68,6 @@ public class MultiThreadedBuilder
|
|||
@Requirement
|
||||
private LifecycleModuleBuilder lifecycleModuleBuilder;
|
||||
|
||||
|
||||
public MultiThreadedBuilder()
|
||||
{
|
||||
}
|
||||
|
@ -142,15 +142,20 @@ private void multiThreadedProjectTaskSegmentBuild( ConcurrencyDependencyGraph an
|
|||
{
|
||||
break;
|
||||
}
|
||||
final List<MavenProject> newItemsThatCanBeBuilt =
|
||||
analyzer.markAsFinished( projectBuild.getProject() );
|
||||
for ( MavenProject mavenProject : newItemsThatCanBeBuilt )
|
||||
|
||||
// MNG-6170: Only schedule other modules from reactor if we have more modules to build than one.
|
||||
if ( analyzer.getNumberOfBuilds() > 1 )
|
||||
{
|
||||
ProjectSegment scheduledDependent = projectBuildList.get( mavenProject );
|
||||
logger.debug( "Scheduling: " + scheduledDependent );
|
||||
Callable<ProjectSegment> cb =
|
||||
createBuildCallable( rootSession, scheduledDependent, reactorContext, taskSegment, muxer );
|
||||
service.submit( cb );
|
||||
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 )
|
||||
|
@ -166,7 +171,7 @@ private void multiThreadedProjectTaskSegmentBuild( ConcurrencyDependencyGraph an
|
|||
}
|
||||
}
|
||||
|
||||
// cancel outstanding builds (if any) - this can happen if an exception is thrown in above block
|
||||
// cancel outstanding builds (if any) - this can happen if an exception is thrown in above block
|
||||
|
||||
Future<ProjectSegment> unprocessed;
|
||||
while ( ( unprocessed = service.poll() ) != null )
|
||||
|
|
Loading…
Reference in New Issue