Author: jdcasey Date: Thu Aug 28 15:38:04 2008 New Revision: 690031 URL: http://svn.apache.org/viewvc?rev=690031&view=rev Log: Merging to r689990 from RC branch.
Modified: maven/components/branches/maven-2.1.x/ (props changed) maven/components/branches/maven-2.1.x/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java maven/components/branches/maven-2.1.x/maven-project/src/test/java/org/apache/maven/project/interpolation/AbstractModelInterpolatorTest.java (props changed) Propchange: maven/components/branches/maven-2.1.x/ ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Thu Aug 28 15:38:04 2008 @@ -1,3 +1,3 @@ /maven/components/branches/maven-2.0.10-RC:679193-679867,680477-688882 /maven/components/branches/maven-2.0.x:679552-679867 -/maven/components/branches/maven-2.1.0-RC:688883,689695 +/maven/components/branches/maven-2.1.0-RC:688883,689695,689990 Modified: maven/components/branches/maven-2.1.x/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java URL: http://svn.apache.org/viewvc/maven/components/branches/maven-2.1.x/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java?rev=690031&r1=690030&r2=690031&view=diff ============================================================================== --- maven/components/branches/maven-2.1.x/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java (original) +++ maven/components/branches/maven-2.1.x/maven-core/src/main/java/org/apache/maven/lifecycle/DefaultLifecycleExecutor.java Thu Aug 28 15:38:04 2008 @@ -703,30 +703,20 @@ { throw new LifecycleExecutionException( e.getMessage(), e ); } - - if ( hasFork ) - { - project.setExecutionProject( null ); - - if ( usesReactorProjects ) - { - List reactorProjects = session.getSortedProjects(); - for ( Iterator it = reactorProjects.iterator(); it.hasNext(); ) - { - MavenProject reactorProject = (MavenProject) it.next(); - reactorProject.setExecutionProject( null ); - } - } - } - -// if ( usesReactorProjects ) -// { -// restoreAllDynamicStates( session ); -// } -// else -// { -// restoreDynamicState( project, session, true ); -// } + + // 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. } } Propchange: maven/components/branches/maven-2.1.x/maven-project/src/test/java/org/apache/maven/project/interpolation/AbstractModelInterpolatorTest.java ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Thu Aug 28 15:38:04 2008 @@ -1 +1 @@ -/maven/components/branches/maven-2.1.0-RC/maven-project/src/test/java/org/apache/maven/project/interpolation/AbstractModelInterpolatorTest.java:688883,689695 +/maven/components/branches/maven-2.1.0-RC/maven-project/src/test/java/org/apache/maven/project/interpolation/AbstractModelInterpolatorTest.java:688883,689695,689990