You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by kr...@apache.org on 2013/03/30 07:06:35 UTC

git commit: [MNG-5456] Incorrect exception handling in parallel build

Updated Branches:
  refs/heads/master eb164f514 -> 973673721


[MNG-5456] Incorrect exception handling in parallel build


Project: http://git-wip-us.apache.org/repos/asf/maven/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven/commit/97367372
Tree: http://git-wip-us.apache.org/repos/asf/maven/tree/97367372
Diff: http://git-wip-us.apache.org/repos/asf/maven/diff/97367372

Branch: refs/heads/master
Commit: 973673721b138e8dde68997fe198dff1417c2299
Parents: eb164f5
Author: Kristian Rosenvold <kr...@gmail.com>
Authored: Sat Mar 30 07:00:05 2013 +0100
Committer: Kristian Rosenvold <kr...@gmail.com>
Committed: Sat Mar 30 07:00:05 2013 +0100

----------------------------------------------------------------------
 .../main/java/org/apache/maven/DefaultMaven.java   |   28 +++++++-------
 .../internal/LifecycleThreadedBuilder.java         |    5 ++-
 2 files changed, 18 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven/blob/97367372/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
----------------------------------------------------------------------
diff --git a/maven-core/src/main/java/org/apache/maven/DefaultMaven.java b/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
index 070b7f7..c80134f 100644
--- a/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
+++ b/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
@@ -171,17 +171,17 @@ public class DefaultMaven
         }
         catch ( OutOfMemoryError e )
         {
-            result = processResult( new DefaultMavenExecutionResult(), e );
+            result = addExceptionToResult(new DefaultMavenExecutionResult(), e);
         }
         catch ( MavenExecutionRequestPopulationException e )
         {
-            result = processResult( new DefaultMavenExecutionResult(), e );
+            result = addExceptionToResult(new DefaultMavenExecutionResult(), e);
         }
         catch ( RuntimeException e )
         {
             result =
-                processResult( new DefaultMavenExecutionResult(),
-                               new InternalErrorException( "Internal error: " + e, e ) );
+                addExceptionToResult(new DefaultMavenExecutionResult(),
+                        new InternalErrorException("Internal error: " + e, e));
         }
         finally
         {
@@ -211,7 +211,7 @@ public class DefaultMaven
         }
         catch ( LocalRepositoryNotAccessibleException e )
         {
-            return processResult( result, e );
+            return addExceptionToResult(result, e);
         }
 
         DelegatingLocalArtifactRepository delegatingLocalArtifactRepository =
@@ -233,7 +233,7 @@ public class DefaultMaven
         }
         catch ( MavenExecutionException e )
         {
-            return processResult( result, e );
+            return addExceptionToResult(result, e);
         }
 
         eventCatapult.fire( ExecutionEvent.Type.ProjectDiscoveryStarted, session, null );
@@ -249,7 +249,7 @@ public class DefaultMaven
         }
         catch ( ProjectBuildingException e )
         {
-            return processResult( result, e );
+            return addExceptionToResult(result, e);
         }
 
         session.setProjects( projects );
@@ -275,7 +275,7 @@ public class DefaultMaven
         }
         catch ( org.apache.maven.DuplicateProjectException e )
         {
-            return processResult( result, e );
+            return addExceptionToResult(result, e);
         }
 
         repoSession.setReadOnly();
@@ -292,7 +292,7 @@ public class DefaultMaven
         }
         catch ( MavenExecutionException e )
         {
-            return processResult( result, e );
+            return addExceptionToResult(result, e);
         }
         finally
         {
@@ -315,15 +315,15 @@ public class DefaultMaven
 
             ProjectCycleException error = new ProjectCycleException( message, e );
 
-            return processResult( result, error );
+            return addExceptionToResult(result, error);
         }
         catch ( DuplicateProjectException e )
         {
-            return processResult( result, e );
+            return addExceptionToResult(result, e);
         }
         catch ( MavenExecutionException e )
         {
-            return processResult( result, e );
+            return addExceptionToResult(result, e);
         }
 
         result.setTopologicallySortedProjects( session.getProjects() );
@@ -339,7 +339,7 @@ public class DefaultMaven
 
         if ( session.getResult().hasExceptions() )
         {
-            return processResult( result, session.getResult().getExceptions().get( 0 ) );
+            return addExceptionToResult(result, session.getResult().getExceptions().get(0));
         }
 
         return result;
@@ -592,7 +592,7 @@ public class DefaultMaven
         return lifecycleListeners;
     }
 
-    private MavenExecutionResult processResult( MavenExecutionResult result, Throwable e )
+    private MavenExecutionResult addExceptionToResult(MavenExecutionResult result, Throwable e)
     {
         if ( !result.getExceptions().contains( e ) )
         {

http://git-wip-us.apache.org/repos/asf/maven/blob/97367372/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleThreadedBuilder.java
----------------------------------------------------------------------
diff --git a/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleThreadedBuilder.java b/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleThreadedBuilder.java
index aa95f2a..dbd3f4f 100644
--- a/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleThreadedBuilder.java
+++ b/maven-core/src/main/java/org/apache/maven/lifecycle/internal/LifecycleThreadedBuilder.java
@@ -78,7 +78,8 @@ public class LifecycleThreadedBuilder
                 }
                 catch ( Exception e )
                 {
-                    break;  // Why are we just ignoring this exception? Are exceptions are being used for flow control
+                    session.getResult().addException(e);
+                    break;
                 }
 
         }
@@ -125,10 +126,12 @@ public class LifecycleThreadedBuilder
             }
             catch ( InterruptedException e )
             {
+                rootSession.getResult().addException(e);
                 break;
             }
             catch ( ExecutionException e )
             {
+                rootSession.getResult().addException(e);
                 break;
             }
         }