You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by be...@apache.org on 2008/12/30 12:05:43 UTC
svn commit: r730089 -
/maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/CpdReport.java
Author: bentmann
Date: Tue Dec 30 03:05:42 2008
New Revision: 730089
URL: http://svn.apache.org/viewvc?rev=730089&view=rev
Log:
o Fixed file leaks
Modified:
maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/CpdReport.java
Modified: maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/CpdReport.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/CpdReport.java?rev=730089&r1=730088&r2=730089&view=diff
==============================================================================
--- maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/CpdReport.java (original)
+++ maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/CpdReport.java Tue Dec 30 03:05:42 2008
@@ -39,6 +39,7 @@
import net.sourceforge.pmd.cpd.XMLRenderer;
import org.apache.maven.reporting.MavenReportException;
+import org.codehaus.plexus.util.IOUtil;
import org.codehaus.plexus.util.WriterFactory;
import org.codehaus.plexus.util.StringUtils;
@@ -101,6 +102,22 @@
public void executeReport( Locale locale )
throws MavenReportException
{
+ try
+ {
+ execute( locale );
+ }
+ finally
+ {
+ if ( getSink() != null )
+ {
+ getSink().close();
+ }
+ }
+ }
+
+ private void execute( Locale locale )
+ throws MavenReportException
+ {
if ( !skip && canGenerateReport() )
{
ClassLoader origLoader = Thread.currentThread().getContextClassLoader();
@@ -160,7 +177,8 @@
}
}
- void writeNonHtml( CPD cpd ) throws MavenReportException
+ void writeNonHtml( CPD cpd )
+ throws MavenReportException
{
Renderer r = createRenderer();
String buffer = r.render( cpd.getMatches() );
@@ -169,17 +187,26 @@
targetDirectory.mkdirs();
FileOutputStream tStream = new FileOutputStream( new File( targetDirectory, "cpd." + format ) );
Writer writer = new OutputStreamWriter( tStream, "UTF-8" );
- writer.write( buffer, 0, buffer.length() );
- writer.close();
-
-
+ try
+ {
+ writer.write( buffer );
+ }
+ finally
+ {
+ IOUtil.close( writer );
+ }
+
File siteDir = getReportOutputDirectory();
siteDir.mkdirs();
- writer = new FileWriter( new File( siteDir,
- "cpd." + format ) );
- writer.write( buffer, 0, buffer.length() );
- writer.close();
-
+ writer = new FileWriter( new File( siteDir, "cpd." + format ) );
+ try
+ {
+ writer.write( buffer, 0, buffer.length() );
+ }
+ finally
+ {
+ IOUtil.close( writer );
+ }
}
catch ( IOException ioe )
{