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() )