You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by be...@apache.org on 2010/07/27 21:08:20 UTC

svn commit: r979808 - /maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/DefaultProjectDependencyGraph.java

Author: bentmann
Date: Tue Jul 27 19:08:20 2010
New Revision: 979808

URL: http://svn.apache.org/viewvc?rev=979808&view=rev
Log:
[MNG-4740] Maven hangs with big aggregators with lots of inter-modules dependencies
Submitted by: Vincent Latombe

Modified:
    maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/DefaultProjectDependencyGraph.java

Modified: maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/DefaultProjectDependencyGraph.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/DefaultProjectDependencyGraph.java?rev=979808&r1=979807&r2=979808&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/DefaultProjectDependencyGraph.java (original)
+++ maven/maven-3/trunk/maven-core/src/main/java/org/apache/maven/DefaultProjectDependencyGraph.java Tue Jul 27 19:08:20 2010
@@ -77,11 +77,12 @@ class DefaultProjectDependencyGraph
     {
         for ( String id : sorter.getDependents( projectId ) )
         {
-            projectIds.add( id );
-
-            if ( transitive )
+            if ( projectIds.add( id ) )
             {
-                getDownstreamProjects( id, projectIds, transitive );
+                if ( transitive )
+                {
+                    getDownstreamProjects( id, projectIds, transitive );
+                }
             }
         }
     }
@@ -104,11 +105,12 @@ class DefaultProjectDependencyGraph
     {
         for ( String id : sorter.getDependencies( projectId ) )
         {
-            projectIds.add( id );
-
-            if ( transitive )
+            if ( projectIds.add( id ) )
             {
-                getUpstreamProjects( id, projectIds, transitive );
+                if ( transitive )
+                {
+                    getUpstreamProjects( id, projectIds, transitive );
+                }
             }
         }
     }