You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by rf...@apache.org on 2020/06/20 09:33:22 UTC

[maven] 09/31: Fixed a bug where a failed project would be excluded in the next build when it failed after another failed build.

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 <Ma...@infosupport.com>
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" );