This is an automated email from the ASF dual-hosted git repository.

tibordigana pushed a commit to branch MNG-6726
in repository https://gitbox.apache.org/repos/asf/maven.git

commit c8865e8a325b8563e03d08cdd5c6be158e309639
Author: tibordigana <[email protected]>
AuthorDate: Tue Jul 30 13:04:49 2019 +0200

    Revert "[MNG-6720] MultiThreadedBuilder: wait for parallel running projects 
when using --fail-fast"
    
    This reverts commit 0515cb1f
---
 .../builder/multithreaded/MultiThreadedBuilder.java  | 20 ++++++++++++++++----
 1 file changed, 16 insertions(+), 4 deletions(-)

diff --git 
a/maven-core/src/main/java/org/apache/maven/lifecycle/internal/builder/multithreaded/MultiThreadedBuilder.java
 
b/maven-core/src/main/java/org/apache/maven/lifecycle/internal/builder/multithreaded/MultiThreadedBuilder.java
index 94d10af..bfbfb02 100644
--- 
a/maven-core/src/main/java/org/apache/maven/lifecycle/internal/builder/multithreaded/MultiThreadedBuilder.java
+++ 
b/maven-core/src/main/java/org/apache/maven/lifecycle/internal/builder/multithreaded/MultiThreadedBuilder.java
@@ -27,7 +27,7 @@ import java.util.concurrent.ExecutionException;
 import java.util.concurrent.ExecutorCompletionService;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
-import java.util.concurrent.TimeUnit;
+import java.util.concurrent.Future;
 
 import org.apache.maven.execution.MavenSession;
 import org.apache.maven.lifecycle.internal.BuildThreadFactory;
@@ -114,9 +114,6 @@ public class MultiThreadedBuilder
             }
 
         }
-
-        executor.shutdown();
-        executor.awaitTermination( Long.MAX_VALUE, TimeUnit.MILLISECONDS );
     }
 
     private void multiThreadedProjectTaskSegmentBuild( 
ConcurrencyDependencyGraph analyzer,
@@ -175,6 +172,21 @@ public class MultiThreadedBuilder
                 break;
             }
         }
+
+        // cancel outstanding builds (if any) - this can happen if an 
exception is thrown in above block
+
+        Future<ProjectSegment> unprocessed;
+        while ( ( unprocessed = service.poll() ) != null )
+        {
+            try
+            {
+                unprocessed.get();
+            }
+            catch ( InterruptedException | ExecutionException e )
+            {
+                throw new RuntimeException( e );
+            }
+        }
     }
 
     private Callable<ProjectSegment> createBuildCallable( final MavenSession 
rootSession,

Reply via email to