You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jd...@apache.org on 2008/08/28 23:17:35 UTC

svn commit: r689990 - /maven/components/branches/maven-2.1.0-RC/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java

Author: jdcasey
Date: Thu Aug 28 14:17:35 2008
New Revision: 689990

URL: http://svn.apache.org/viewvc?rev=689990&view=rev
Log:
adding implementation warning comment.

Modified:
    maven/components/branches/maven-2.1.0-RC/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java

Modified: maven/components/branches/maven-2.1.0-RC/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java
URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.1.0-RC/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java?rev=689990&r1=689989&r2=689990&view=diff
==============================================================================
--- maven/components/branches/maven-2.1.0-RC/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java (original)
+++ maven/components/branches/maven-2.1.0-RC/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java Thu Aug 28 14:17:35 2008
@@ -704,6 +704,20 @@
             {
                 throw new LifecycleExecutionException( e.getMessage(), e );
             }
+            
+            // NOTE: Ordinarily, we might be tempted to set all pertinent executionProjects
+            // to null here, to release some memory. HOWEVER, the problem is that
+            // the reactorProjects construct doesn't track successive levels of
+            // forked execution properly, so we MUST NOT SET THE executionProject
+            // INSTANCES TO NULL. If we do this inside a two-or-more-level-deep
+            // fork, it can result in passing a null project instance through
+            // to the plugin manager, since successive iterations of the n-1
+            // fork to execute fork n with each project in reactorProjects MUST
+            // HAVE ACCESS TO THE executionProject for every project.
+            //
+            // Just please don't set executionProjects == null here. Not until
+            // we have a mechanism for tracking (stack push/pull) successive
+            // forked lifecycles in the reactorProjects collection.
         }
     }