You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ol...@apache.org on 2011/12/07 23:55:08 UTC

svn commit: r1211692 - /maven/maven-3/trunk/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java

Author: olamy
Date: Wed Dec  7 22:55:08 2011
New Revision: 1211692

URL: http://svn.apache.org/viewvc?rev=1211692&view=rev
Log:
[MNG-5206] plexus container never disposed
Submitted by Stuart McCulloch.

Modified:
    maven/maven-3/trunk/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java

Modified: maven/maven-3/trunk/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java
URL: http://svn.apache.org/viewvc/maven/maven-3/trunk/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java?rev=1211692&r1=1211691&r2=1211692&view=diff
==============================================================================
--- maven/maven-3/trunk/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java (original)
+++ maven/maven-3/trunk/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java Wed Dec  7 22:55:08 2011
@@ -180,6 +180,7 @@ public class MavenCli
     // TODO: need to externalize CliRequest
     public int doMain( CliRequest cliRequest )
     {
+        PlexusContainer localContainer = this.container;
         try
         {
             initialize( cliRequest );
@@ -188,7 +189,7 @@ public class MavenCli
             logging( cliRequest );
             version( cliRequest );
             properties( cliRequest );
-            container( cliRequest );
+            localContainer = container( cliRequest );
             commands( cliRequest );
             settings( cliRequest );
             populateRequest( cliRequest );
@@ -218,6 +219,10 @@ public class MavenCli
         }
         finally
         {
+            if ( localContainer != this.container )
+            {
+                localContainer.dispose();
+            }
             if ( cliRequest.fileStream != null )
             {
                 cliRequest.fileStream.close();
@@ -353,7 +358,7 @@ public class MavenCli
         populateProperties( cliRequest.commandLine, cliRequest.systemProperties, cliRequest.userProperties );
     }
 
-    private void container( CliRequest cliRequest )
+    private PlexusContainer container( CliRequest cliRequest )
         throws Exception
     {
         if ( cliRequest.classWorld == null )
@@ -414,6 +419,8 @@ public class MavenCli
         settingsBuilder = container.lookup( SettingsBuilder.class );
 
         dispatcher = (DefaultSecDispatcher) container.lookup( SecDispatcher.class, "maven" );
+
+        return container;
     }
 
     private PrintStreamLogger setupLogger( CliRequest cliRequest )