Author: hboutemy
Date: Tue Oct 19 08:04:35 2010
New Revision: 1024154

URL: http://svn.apache.org/viewvc?rev=1024154&view=rev
Log:
avoid stream leaks when reading properties files

Modified:
    
maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/generator/DefaultArchetypeGeneratorTest.java
    
maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CreateArchetypeFromProjectMojo.java

Modified: 
maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/generator/DefaultArchetypeGeneratorTest.java
URL: 
http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/generator/DefaultArchetypeGeneratorTest.java?rev=1024154&r1=1024153&r2=1024154&view=diff
==============================================================================
--- 
maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/generator/DefaultArchetypeGeneratorTest.java
 (original)
+++ 
maven/archetype/trunk/archetype-common/src/test/java/org/apache/maven/archetype/generator/DefaultArchetypeGeneratorTest.java
 Tue Oct 19 08:04:35 2010
@@ -39,6 +39,7 @@ import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileNotFoundException;
 import java.io.IOException;
+import java.io.InputStream;
 import java.io.Reader;
 import java.util.Properties;
 
@@ -538,8 +539,16 @@ public class DefaultArchetypeGeneratorTe
         throws IOException, FileNotFoundException
     {
         Properties properties = new Properties();
-        properties.load( new FileInputStream( propertyFile ) );
-        return properties;
+        InputStream in = new FileInputStream( propertyFile );
+        try
+        {
+            properties.load( in );
+            return properties;
+        }
+        finally
+        {
+            IOUtil.close( in );
+        }
     }
 
     private Properties loadProperties( final String template )

Modified: 
maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CreateArchetypeFromProjectMojo.java
URL: 
http://svn.apache.org/viewvc/maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CreateArchetypeFromProjectMojo.java?rev=1024154&r1=1024153&r2=1024154&view=diff
==============================================================================
--- 
maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CreateArchetypeFromProjectMojo.java
 (original)
+++ 
maven/archetype/trunk/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CreateArchetypeFromProjectMojo.java
 Tue Oct 19 08:04:35 2010
@@ -31,6 +31,7 @@ import org.apache.maven.plugin.AbstractM
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
 import org.apache.maven.project.MavenProject;
+import org.codehaus.plexus.util.PropertyUtils;
 import org.codehaus.plexus.util.StringUtils;
 
 import java.io.File;
@@ -251,25 +252,15 @@ public class CreateArchetypeFromProjectM
 
         if ( filteredExtensions.isEmpty() && propertyFile != null && 
propertyFile.exists() )
         {
-            try
-            {
-                Properties properties = new Properties();
-                properties.load( new FileInputStream( propertyFile ) );
+            Properties properties = PropertyUtils.loadProperties( propertyFile 
);
 
-                String extensions = properties.getProperty( 
Constants.ARCHETYPE_FILTERED_EXTENSIONS );
-                if ( StringUtils.isNotEmpty( extensions ) )
-                {
-                    filteredExtensions.addAll( Arrays.asList( 
StringUtils.split( extensions, "," ) ) );
-                }
-
-                getLog().debug(
-                                "Found in propertyFile " + 
propertyFile.getName() + " extensions = "
-                                    + filteredExtensions );
-            }
-            catch ( IOException e )
+            String extensions = properties.getProperty( 
Constants.ARCHETYPE_FILTERED_EXTENSIONS );
+            if ( StringUtils.isNotEmpty( extensions ) )
             {
-                getLog().warn( "Can not read " + propertyFile.getName() );
+                filteredExtensions.addAll( Arrays.asList( StringUtils.split( 
extensions, "," ) ) );
             }
+
+            getLog().debug( "Found in propertyFile " + propertyFile.getName() 
+ " extensions = " + filteredExtensions );
         }
 
         if ( filteredExtensions.isEmpty() )
@@ -295,25 +286,15 @@ public class CreateArchetypeFromProjectM
 
         if ( resultingLanguages.isEmpty() && propertyFile != null && 
propertyFile.exists() )
         {
-            try
-            {
-                Properties properties = new Properties();
-                properties.load( new FileInputStream( propertyFile ) );
+            Properties properties = PropertyUtils.loadProperties( propertyFile 
);
 
-                String languages = properties.getProperty( 
Constants.ARCHETYPE_LANGUAGES );
-                if ( StringUtils.isNotEmpty( languages ) )
-                {
-                    resultingLanguages.addAll( Arrays.asList( 
StringUtils.split( languages, "," ) ) );
-                }
-
-                getLog().debug(
-                                "Found in propertyFile " + 
propertyFile.getName() + " languages = "
-                                    + resultingLanguages );
-            }
-            catch ( IOException e )
+            String languages = properties.getProperty( 
Constants.ARCHETYPE_LANGUAGES );
+            if ( StringUtils.isNotEmpty( languages ) )
             {
-                getLog().warn( "Cannot read " + propertyFile.getName() );
+                resultingLanguages.addAll( Arrays.asList( StringUtils.split( 
languages, "," ) ) );
             }
+
+            getLog().debug( "Found in propertyFile " + propertyFile.getName() 
+ " languages = " + resultingLanguages );
         }
 
         if ( resultingLanguages.isEmpty() )


Reply via email to