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

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

commit ff350dfd05dca376db697b66f70f4a220e336d48
Author: Martin Kanters <[email protected]>
AuthorDate: Sat May 23 07:59:01 2020 +0200

    Fixed a bug where a failed project would be excluded in the next build when 
it failed after another failed build.
---
 .../apache/maven/execution/BuildResumptionManager.java    |  2 +-
 .../maven/execution/BuildResumptionManagerTest.java       | 15 +++++++++++++++
 2 files changed, 16 insertions(+), 1 deletion(-)

diff --git 
a/maven-core/src/main/java/org/apache/maven/execution/BuildResumptionManager.java
 
b/maven-core/src/main/java/org/apache/maven/execution/BuildResumptionManager.java
index 0f6bf39..0fb22e4 100644
--- 
a/maven-core/src/main/java/org/apache/maven/execution/BuildResumptionManager.java
+++ 
b/maven-core/src/main/java/org/apache/maven/execution/BuildResumptionManager.java
@@ -186,7 +186,7 @@ public class BuildResumptionManager
                 .collect( Collectors.toList() );
 
         String projectsToSkip = remainingProjects.stream()
-                .filter( project -> result.getBuildSummary( project ) != null )
+                .filter( project -> result.getBuildSummary( project ) 
instanceof BuildSuccess )
                 .filter( project -> hasNoDependencyOnProjects( project, 
failedProjectsGAList ) )
                 .map( project -> String.format( "%s:%s", project.getGroupId(), 
project.getArtifactId() ) )
                 .collect( Collectors.joining( PROPERTY_DELIMITER ) );
diff --git 
a/maven-core/src/test/java/org/apache/maven/execution/BuildResumptionManagerTest.java
 
b/maven-core/src/test/java/org/apache/maven/execution/BuildResumptionManagerTest.java
index 96c0dee..5c3129b 100644
--- 
a/maven-core/src/test/java/org/apache/maven/execution/BuildResumptionManagerTest.java
+++ 
b/maven-core/src/test/java/org/apache/maven/execution/BuildResumptionManagerTest.java
@@ -107,6 +107,21 @@ public class BuildResumptionManagerTest
     }
 
     @Test
+    public void projectsFailingAfterAnotherFailedProjectAreNotExcluded()
+    {
+        MavenProject projectA = createSucceededMavenProject( "A" );
+        MavenProject projectB = createFailedMavenProject( "B" );
+        MavenProject projectC = createSucceededMavenProject( "C" );
+        MavenProject projectD = createFailedMavenProject( "D" );
+        result.setTopologicallySortedProjects( asList( projectA, projectB, 
projectC, projectD ) );
+
+        Properties properties = 
buildResumptionManager.determineResumptionProperties( result );
+
+        assertThat( properties.get( "resumeFrom" ), is("test:B") );
+        assertThat( properties.get( "excludedProjects" ), is("test:C") );
+    }
+
+    @Test
     public void multipleExcludedProjectsAreCommaSeparated()
     {
         MavenProject projectA = createFailedMavenProject( "A" );

Reply via email to