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