Revert "Merge branch 'master' of 
https://git-wip-us.apache.org/repos/asf/maven-surefire";

This reverts commit 780f91393046fd11129cd9ee5bd10ca1d59286f0, reversing
changes made to 4d3673c42e2af75c22f3abbaa2a0237a5c25e0ce.


Project: http://git-wip-us.apache.org/repos/asf/maven-surefire/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven-surefire/commit/90654a0a
Tree: http://git-wip-us.apache.org/repos/asf/maven-surefire/tree/90654a0a
Diff: http://git-wip-us.apache.org/repos/asf/maven-surefire/diff/90654a0a

Branch: refs/heads/master
Commit: 90654a0ae2d5cae286b00badaa039cdaa0e05c4c
Parents: 45457a3
Author: Stephen Connolly <stephen.alan.conno...@gmail.com>
Authored: Mon Jan 23 10:55:35 2017 +0000
Committer: Stephen Connolly <stephen.alan.conno...@gmail.com>
Committed: Mon Jan 23 10:55:35 2017 +0000

----------------------------------------------------------------------
 .../plugin/surefire/SurefireProperties.java     | 28 +++-----
 .../booterclient/ForkConfiguration.java         | 22 +++---
 .../report/ConsoleOutputFileReporter.java       | 26 ++++---
 .../plugin/surefire/report/FileReporter.java    | 75 +++++++-------------
 .../surefire/report/TestSetRunListener.java     | 37 ++++------
 .../surefire/runorder/StatisticsReporter.java   |  7 +-
 .../surefire/util/DependenciesScannerTest.java  |  8 +--
 .../maven/surefire/report/FileReporterTest.java | 10 +--
 .../surefire/report/SurefireReportMojoTest.java |  2 -
 .../runorder/RunEntryStatisticsMap.java         | 58 ++++++---------
 .../surefire/booter/ForkingRunListener.java     | 15 ++--
 .../surefire/booter/MasterProcessCommand.java   |  2 +-
 .../maven/surefire/booter/ForkedBooter.java     | 16 +++--
 .../surefire/booter/SystemPropertyManager.java  | 41 ++---------
 .../maven/surefire/its/fixture/TestFile.java    |  6 +-
 .../src/test/java/it/BasicTest.java             | 20 ++----
 .../src/test/java/runListener/FileHelper.java   |  5 +-
 .../apache/maven/surefire/test/FailingTest.java | 17 +----
 .../maven/surefire/test/SucceedingTest.java     | 17 +----
 .../plugins/surefire/dumppid/DumpPidMojo.java   |  7 +-
 .../src/test/java/listenReport/FileHelper.java  |  4 +-
 .../java/testng/objectfactory/FileHelper.java   |  3 +-
 .../testng/testrunnerfactory/FileHelper.java    | 20 +++---
 23 files changed, 161 insertions(+), 285 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/90654a0a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/SurefireProperties.java
----------------------------------------------------------------------
diff --git 
a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/SurefireProperties.java
 
b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/SurefireProperties.java
index 0125aa4..53aa134 100644
--- 
a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/SurefireProperties.java
+++ 
b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/SurefireProperties.java
@@ -19,6 +19,10 @@ package org.apache.maven.plugin.surefire;
  * under the License.
  */
 
+import org.apache.maven.surefire.booter.Classpath;
+import org.apache.maven.surefire.booter.KeyValueSource;
+import org.apache.maven.surefire.util.internal.StringUtils;
+
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.IOException;
@@ -32,10 +36,9 @@ import java.util.List;
 import java.util.Map;
 import java.util.Properties;
 import java.util.Set;
+
 import static java.util.Arrays.asList;
-import org.apache.maven.surefire.booter.Classpath;
-import org.apache.maven.surefire.booter.KeyValueSource;
-import org.apache.maven.surefire.util.internal.StringUtils;
+import static org.apache.maven.shared.utils.io.IOUtil.close;
 
 /**
  * A properties implementation that preserves insertion order.
@@ -225,30 +228,15 @@ public class SurefireProperties
     private static SurefireProperties loadProperties( final InputStream 
inStream )
         throws IOException
     {
-        InputStream in = inStream;
-
         try
         {
             final Properties p = new Properties();
-            p.load( in );
-            in.close();
-            in = null;
+            p.load( inStream );
             return new SurefireProperties( p );
         }
         finally
         {
-            // @todo use try-with-resources JDK7, search in all code
-            try
-            {
-                if ( in != null )
-                {
-                    in.close();
-                }
-            }
-            catch ( final IOException e )
-            {
-                // Suppressed, so that the exception thrown in the try block 
will be propagated.
-            }
+            close( inStream ); // @todo use try-with-resources JDK7, search in 
all code
         }
     }
 

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/90654a0a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkConfiguration.java
----------------------------------------------------------------------
diff --git 
a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkConfiguration.java
 
b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkConfiguration.java
index f42c8aa..6cb0fab 100644
--- 
a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkConfiguration.java
+++ 
b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/ForkConfiguration.java
@@ -19,6 +19,16 @@ package org.apache.maven.plugin.surefire.booterclient;
  * under the License.
  */
 
+import org.apache.maven.plugin.surefire.AbstractSurefireMojo;
+import 
org.apache.maven.plugin.surefire.booterclient.lazytestprovider.OutputStreamFlushableCommandline;
+import org.apache.maven.plugin.surefire.util.Relocator;
+import org.apache.maven.shared.utils.StringUtils;
+import org.apache.maven.shared.utils.io.IOUtil;
+import org.apache.maven.surefire.booter.Classpath;
+import org.apache.maven.surefire.booter.ForkedBooter;
+import org.apache.maven.surefire.booter.StartupConfiguration;
+import org.apache.maven.surefire.booter.SurefireBooterForkException;
+
 import java.io.File;
 import java.io.FileOutputStream;
 import java.io.IOException;
@@ -29,15 +39,6 @@ import java.util.Properties;
 import java.util.jar.JarEntry;
 import java.util.jar.JarOutputStream;
 import java.util.jar.Manifest;
-import org.apache.maven.plugin.surefire.AbstractSurefireMojo;
-import 
org.apache.maven.plugin.surefire.booterclient.lazytestprovider.OutputStreamFlushableCommandline;
-import org.apache.maven.plugin.surefire.util.Relocator;
-import org.apache.maven.shared.utils.StringUtils;
-import org.apache.maven.shared.utils.io.IOUtil;
-import org.apache.maven.surefire.booter.Classpath;
-import org.apache.maven.surefire.booter.ForkedBooter;
-import org.apache.maven.surefire.booter.StartupConfiguration;
-import org.apache.maven.surefire.booter.SurefireBooterForkException;
 
 /**
  * Configuration for forking tests.
@@ -297,9 +298,6 @@ public class ForkConfiguration
             man.getMainAttributes().putValue( "Main-Class", startClassName );
 
             man.write( jos );
-
-            jos.close();
-            jos = null;
         }
         finally
         {

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/90654a0a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/ConsoleOutputFileReporter.java
----------------------------------------------------------------------
diff --git 
a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/ConsoleOutputFileReporter.java
 
b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/ConsoleOutputFileReporter.java
index da08d01..914d684 100644
--- 
a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/ConsoleOutputFileReporter.java
+++ 
b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/ConsoleOutputFileReporter.java
@@ -22,8 +22,10 @@ package org.apache.maven.plugin.surefire.report;
 import java.io.File;
 import java.io.FileOutputStream;
 import java.io.IOException;
+
 import org.apache.maven.shared.utils.io.IOUtil;
 import org.apache.maven.surefire.report.ReportEntry;
+
 import static 
org.apache.maven.plugin.surefire.report.FileReporter.getReportFile;
 
 /**
@@ -64,17 +66,21 @@ public class ConsoleOutputFileReporter
     @SuppressWarnings( "checkstyle:emptyblock" )
     public void close()
     {
-        try
-        {
-            this.fileOutputStream.close();
-        }
-        catch ( final IOException e )
-        {
-            throw new RuntimeException( "Failure closing reporter.", e );
-        }
-        finally
+        if ( fileOutputStream != null )
         {
-            this.fileOutputStream = null;
+            try
+            {
+                fileOutputStream.flush();
+                fileOutputStream.close();
+            }
+            catch ( IOException e )
+            {
+                // do nothing
+            }
+            finally
+            {
+                fileOutputStream = null;
+            }
         }
     }
 

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/90654a0a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/FileReporter.java
----------------------------------------------------------------------
diff --git 
a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/FileReporter.java
 
b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/FileReporter.java
index d7a41af..6239f77 100644
--- 
a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/FileReporter.java
+++ 
b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/FileReporter.java
@@ -19,13 +19,14 @@ package org.apache.maven.plugin.surefire.report;
  * under the License.
  */
 
-import java.io.BufferedWriter;
+import org.apache.maven.surefire.report.ReportEntry;
+import org.apache.maven.surefire.report.ReporterException;
+
 import java.io.File;
-import java.io.FileWriter;
 import java.io.IOException;
+import java.io.PrintWriter;
 import java.util.List;
-import org.apache.maven.surefire.report.ReportEntry;
-import org.apache.maven.surefire.report.ReporterException;
+
 import static 
org.apache.maven.plugin.surefire.report.FileReporterUtils.stripIllegalFilenameChars;
 import static org.apache.maven.surefire.util.internal.StringUtils.isNotBlank;
 
@@ -47,7 +48,7 @@ public class FileReporter
         this.reportNameSuffix = reportNameSuffix;
     }
 
-    private BufferedWriter testSetStarting( ReportEntry report )
+    private PrintWriter testSetStarting( ReportEntry report )
     {
         File reportFile = getReportFile( reportsDirectory, report.getName(), 
reportNameSuffix, ".txt" );
 
@@ -56,39 +57,27 @@ public class FileReporter
         // noinspection ResultOfMethodCallIgnored
         reportDir.mkdirs();
 
-        BufferedWriter writer = null;
         try
         {
-            writer = new BufferedWriter( new FileWriter( reportFile ) );
+            /**
+             * The implementation of constructor {@link PrintWriter(File)}
+             * uses {@link java.io.BufferedWriter}
+             * which is guaranteed by Java 1.5 Javadoc of the constructor:
+             * "The output will be written to the file and is buffered."
+             */
+            PrintWriter writer = new PrintWriter( reportFile );
 
-            writer.append( 
"-------------------------------------------------------------------------------"
 );
-            writer.newLine();
+            writer.println( 
"-------------------------------------------------------------------------------"
 );
 
-            writer.append( "Test set: " + report.getName() );
-            writer.newLine();
+            writer.println( "Test set: " + report.getName() );
 
-            writer.append( 
"-------------------------------------------------------------------------------"
 );
-            writer.newLine();
+            writer.println( 
"-------------------------------------------------------------------------------"
 );
 
             return writer;
         }
         catch ( IOException e )
         {
-            try
-            {
-                if ( writer != null )
-                {
-                    writer.close();
-                }
-            }
-            catch ( final IOException e1 )
-            {
-                // Suppressed.
-            }
-            finally
-            {
-                throw new ReporterException( "Unable to create file for 
report: " + e.getMessage(), e );
-            }
+            throw new ReporterException( "Unable to create file for report: " 
+ e.getMessage(), e );
         }
     }
 
@@ -101,37 +90,23 @@ public class FileReporter
     }
 
     public void testSetCompleted( WrappedReportEntry report, TestSetStats 
testSetStats, List<String> testResults )
-        throws IOException
     {
-        BufferedWriter writer = null;
+        /**
+         * Using buffered stream internally.
+         */
+        PrintWriter writer = testSetStarting( report );
         try
         {
-            writer = testSetStarting( report );
-            writer.append( testSetStats.getTestSetSummary( report ) );
-            writer.newLine();
-
+            writer.println( testSetStats.getTestSetSummary( report ) );
             for ( String testResult : testResults )
             {
-                writer.append( testResult );
-                writer.newLine();
+                writer.println( testResult );
             }
-
-            writer.close();
-            writer = null;
+            writer.flush();
         }
         finally
         {
-            try
-            {
-                if ( writer != null )
-                {
-                    writer.close();
-                }
-            }
-            catch ( final IOException e )
-            {
-                // Suppressed.
-            }
+            writer.close();
         }
     }
 }

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/90654a0a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/TestSetRunListener.java
----------------------------------------------------------------------
diff --git 
a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/TestSetRunListener.java
 
b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/TestSetRunListener.java
index a9b8f3b..c5a17d3 100644
--- 
a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/TestSetRunListener.java
+++ 
b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/TestSetRunListener.java
@@ -151,29 +151,22 @@ public class TestSetRunListener
 
     public void testSetCompleted( ReportEntry report )
     {
-        try
-        {
-            final WrappedReportEntry wrap = wrapTestSet( report );
-            final List<String> testResults =
+        final WrappedReportEntry wrap = wrapTestSet( report );
+        final List<String> testResults =
                 briefOrPlainFormat ? detailsForThis.getTestResults() : 
Collections.<String>emptyList();
-            fileReporter.testSetCompleted( wrap, detailsForThis, testResults );
-            simpleXMLReporter.testSetCompleted( wrap, detailsForThis );
-            statisticsReporter.testSetCompleted();
-            consoleReporter.testSetCompleted( wrap, detailsForThis, 
testResults );
-            consoleOutputReceiver.testSetCompleted( wrap );
-            consoleReporter.reset();
-
-            wrap.getStdout().free();
-            wrap.getStdErr().free();
-
-            addTestMethodStats();
-            detailsForThis.reset();
-            clearCapture();
-        }
-        catch ( final IOException e )
-        {
-            throw new RuntimeException( "Unexpected IOException.e", e );
-        }
+        fileReporter.testSetCompleted( wrap, detailsForThis, testResults );
+        simpleXMLReporter.testSetCompleted( wrap, detailsForThis );
+        statisticsReporter.testSetCompleted();
+        consoleReporter.testSetCompleted( wrap, detailsForThis, testResults );
+        consoleOutputReceiver.testSetCompleted( wrap );
+        consoleReporter.reset();
+
+        wrap.getStdout().free();
+        wrap.getStdErr().free();
+
+        addTestMethodStats();
+        detailsForThis.reset();
+        clearCapture();
     }
 
     // ----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/90654a0a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/runorder/StatisticsReporter.java
----------------------------------------------------------------------
diff --git 
a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/runorder/StatisticsReporter.java
 
b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/runorder/StatisticsReporter.java
index ee3421e..3f78939 100644
--- 
a/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/runorder/StatisticsReporter.java
+++ 
b/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/runorder/StatisticsReporter.java
@@ -19,10 +19,11 @@ package org.apache.maven.plugin.surefire.runorder;
  * under the License.
  */
 
-import java.io.File;
-import java.io.IOException;
 import org.apache.maven.surefire.report.ReportEntry;
 
+import java.io.File;
+import java.io.FileNotFoundException;
+
 import static 
org.apache.maven.plugin.surefire.runorder.RunEntryStatisticsMap.fromFile;
 
 /**
@@ -54,7 +55,7 @@ public class StatisticsReporter
         {
             newResults.serialize( dataFile );
         }
-        catch ( IOException e )
+        catch ( FileNotFoundException e )
         {
             throw new RuntimeException( e );
         }

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/90654a0a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/util/DependenciesScannerTest.java
----------------------------------------------------------------------
diff --git 
a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/util/DependenciesScannerTest.java
 
b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/util/DependenciesScannerTest.java
index a223a0d..c8dd436 100644
--- 
a/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/util/DependenciesScannerTest.java
+++ 
b/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/util/DependenciesScannerTest.java
@@ -75,10 +75,9 @@ public class DependenciesScannerTest
         File output = new File( "target/DependenciesScannerTest-tests.jar" );
         output.delete();
 
-        ZipOutputStream out = null;
+        ZipOutputStream out = new ZipOutputStream( new FileOutputStream( 
output ) );
         try
         {
-            out = new ZipOutputStream( new FileOutputStream( output ) );
             out.putNextEntry( new ZipEntry( "org/test/TestA.class" ) );
             out.closeEntry();
             out.putNextEntry( new ZipEntry( "org/test/TestB.class" ) );
@@ -87,10 +86,7 @@ public class DependenciesScannerTest
         }
         finally
         {
-            if ( out != null )
-            {
-                out.close();
-            }
+            out.close();
         }
     }
 }

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/90654a0a/maven-surefire-common/src/test/java/org/apache/maven/surefire/report/FileReporterTest.java
----------------------------------------------------------------------
diff --git 
a/maven-surefire-common/src/test/java/org/apache/maven/surefire/report/FileReporterTest.java
 
b/maven-surefire-common/src/test/java/org/apache/maven/surefire/report/FileReporterTest.java
index f8a92d8..076b23c 100644
--- 
a/maven-surefire-common/src/test/java/org/apache/maven/surefire/report/FileReporterTest.java
+++ 
b/maven-surefire-common/src/test/java/org/apache/maven/surefire/report/FileReporterTest.java
@@ -19,15 +19,15 @@ package org.apache.maven.surefire.report;
  * under the License.
  */
 
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
 import junit.framework.TestCase;
 import org.apache.maven.plugin.surefire.report.FileReporter;
 import org.apache.maven.plugin.surefire.report.ReportEntryType;
 import org.apache.maven.plugin.surefire.report.TestSetStats;
 import org.apache.maven.plugin.surefire.report.WrappedReportEntry;
 
+import java.io.File;
+import java.util.ArrayList;
+
 public class FileReporterTest
     extends TestCase
 {
@@ -38,7 +38,7 @@ public class FileReporterTest
 
     private static final String testName = 
"org.apache.maven.surefire.report.FileReporterTest";
 
-    public void testFileNameWithoutSuffix() throws IOException
+    public void testFileNameWithoutSuffix()
     {
         File reportDir = new File( "target" );
         reportEntry = new SimpleReportEntry( this.getClass().getName(), 
testName );
@@ -58,7 +58,7 @@ public class FileReporterTest
         return new TestSetStats( true, true );
     }
 
-    public void testFileNameWithSuffix() throws IOException
+    public void testFileNameWithSuffix()
     {
         File reportDir = new File( "target" );
         String suffixText = "sampleSuffixText";

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/90654a0a/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/SurefireReportMojoTest.java
----------------------------------------------------------------------
diff --git 
a/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/SurefireReportMojoTest.java
 
b/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/SurefireReportMojoTest.java
index 8532b1b..724e72d 100644
--- 
a/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/SurefireReportMojoTest.java
+++ 
b/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/SurefireReportMojoTest.java
@@ -640,8 +640,6 @@ public class SurefireReportMojoTest
             writer = WriterFactory.newXmlWriter( outputHtml );
             // renderer doxia 1.6 already closed the writer
             renderer.generateDocument( writer, (SiteRendererSink) 
mojo.getSink(), context );
-            writer.close();
-            writer = null;
         }
         finally
         {

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/90654a0a/surefire-api/src/main/java/org/apache/maven/plugin/surefire/runorder/RunEntryStatisticsMap.java
----------------------------------------------------------------------
diff --git 
a/surefire-api/src/main/java/org/apache/maven/plugin/surefire/runorder/RunEntryStatisticsMap.java
 
b/surefire-api/src/main/java/org/apache/maven/plugin/surefire/runorder/RunEntryStatisticsMap.java
index 2e9c133..eab2a81 100644
--- 
a/surefire-api/src/main/java/org/apache/maven/plugin/surefire/runorder/RunEntryStatisticsMap.java
+++ 
b/surefire-api/src/main/java/org/apache/maven/plugin/surefire/runorder/RunEntryStatisticsMap.java
@@ -20,12 +20,15 @@ package org.apache.maven.plugin.surefire.runorder;
  */
 
 
+import org.apache.maven.shared.utils.io.IOUtil;
+import org.apache.maven.surefire.report.ReportEntry;
+
 import java.io.BufferedReader;
-import java.io.BufferedWriter;
 import java.io.File;
+import java.io.FileNotFoundException;
 import java.io.FileReader;
 import java.io.IOException;
-import java.io.OutputStreamWriter;
+import java.io.PrintWriter;
 import java.io.Reader;
 import java.util.ArrayList;
 import java.util.Comparator;
@@ -35,9 +38,8 @@ import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
+
 import static java.util.Collections.sort;
-import org.apache.maven.shared.utils.io.IOUtil;
-import org.apache.maven.surefire.report.ReportEntry;
 import static 
org.apache.maven.plugin.surefire.runorder.RunEntryStatistics.fromReportEntry;
 import static 
org.apache.maven.plugin.surefire.runorder.RunEntryStatistics.fromString;
 
@@ -66,10 +68,7 @@ public final class RunEntryStatisticsMap
             try
             {
                 reader = new FileReader( file );
-                final RunEntryStatisticsMap result = fromReader( reader );
-                reader.close();
-                reader = null;
-                return result;
+                return fromReader( reader );
             }
             catch ( IOException e )
             {
@@ -89,50 +88,39 @@ public final class RunEntryStatisticsMap
     static RunEntryStatisticsMap fromReader( Reader fileReader )
         throws IOException
     {
-        BufferedReader reader = null;
         Map<String, RunEntryStatistics> result = new HashMap<String, 
RunEntryStatistics>();
-        try
+        BufferedReader reader = new BufferedReader( fileReader );
+        for ( String line = reader.readLine(); line != null && 
!line.startsWith( "#" ); line = reader.readLine() )
         {
-            reader = new BufferedReader( fileReader );
-            for ( String line = reader.readLine(); line != null; line = 
reader.readLine() )
-            {
-                if ( !line.startsWith( "#" ) )
-                {
-                    RunEntryStatistics stats = fromString( line );
-                    result.put( stats.getTestName(), stats );
-                }
-            }
-            reader.close();
-            reader = null;
-            return new RunEntryStatisticsMap( result );
-        }
-        finally
-        {
-            IOUtil.close( reader );
+            RunEntryStatistics stats = fromString( line );
+            result.put( stats.getTestName(), stats );
         }
+        return new RunEntryStatisticsMap( result );
     }
 
     public void serialize( File file )
-        throws IOException
+        throws FileNotFoundException
     {
-        BufferedWriter writer = null;
+        /**
+         * The implementation of constructor {@link PrintWriter(File)}
+         * uses {@link java.io.BufferedWriter}
+         * which is guaranteed by Java 1.5 Javadoc of the constructor:
+         * "The output will be written to the file and is buffered."
+         */
+        PrintWriter printWriter = new PrintWriter( file );
         try
         {
-            writer = new BufferedWriter( new OutputStreamWriter( new 
FileOutputStream( file ) ) );
             List<RunEntryStatistics> items = new 
ArrayList<RunEntryStatistics>( runEntryStatistics.values() );
             sort( items, new RunCountComparator() );
             for ( RunEntryStatistics item : items )
             {
-                writer.append( item.toString() );
-                writer.newLine();
+                printWriter.println( item.toString() );
             }
-
-            writer.close();
-            writer = null;
+            printWriter.flush();
         }
         finally
         {
-            IOUtil.close( writer );
+            printWriter.close();
         }
     }
 

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/90654a0a/surefire-api/src/main/java/org/apache/maven/surefire/booter/ForkingRunListener.java
----------------------------------------------------------------------
diff --git 
a/surefire-api/src/main/java/org/apache/maven/surefire/booter/ForkingRunListener.java
 
b/surefire-api/src/main/java/org/apache/maven/surefire/booter/ForkingRunListener.java
index 7439ec3..aa0dadd 100644
--- 
a/surefire-api/src/main/java/org/apache/maven/surefire/booter/ForkingRunListener.java
+++ 
b/surefire-api/src/main/java/org/apache/maven/surefire/booter/ForkingRunListener.java
@@ -19,11 +19,6 @@ package org.apache.maven.surefire.booter;
  * under the License.
  */
 
-import java.io.PrintStream;
-import java.util.Enumeration;
-import java.util.Properties;
-import static java.lang.Integer.toHexString;
-import static java.nio.charset.Charset.defaultCharset;
 import org.apache.maven.plugin.surefire.log.api.ConsoleLogger;
 import org.apache.maven.plugin.surefire.log.api.ConsoleLoggerUtils;
 import org.apache.maven.surefire.report.ConsoleOutputReceiver;
@@ -33,6 +28,13 @@ import org.apache.maven.surefire.report.RunListener;
 import org.apache.maven.surefire.report.SafeThrowable;
 import org.apache.maven.surefire.report.SimpleReportEntry;
 import org.apache.maven.surefire.report.StackTraceWriter;
+
+import java.io.PrintStream;
+import java.util.Enumeration;
+import java.util.Properties;
+
+import static java.lang.Integer.toHexString;
+import static java.nio.charset.Charset.defaultCharset;
 import static 
org.apache.maven.surefire.util.internal.StringUtils.encodeStringForForkCommunication;
 import static 
org.apache.maven.surefire.util.internal.StringUtils.escapeBytesToPrintable;
 import static 
org.apache.maven.surefire.util.internal.StringUtils.escapeToPrintable;
@@ -209,8 +211,7 @@ public class ForkingRunListener
                 // We MUST NOT throw any exception from this method; otherwise 
we are in loop and CPU goes up:
                 // ForkingRunListener -> Exception -> JUnit Notifier and 
RunListener -> ForkingRunListener -> Exception
                 DumpErrorSingleton.getSingleton()
-                    .dumpStreamText( "Unexpected IOException with stream: " + 
new String( buf, off, len ) );
-
+                        .dumpStreamText( "Unexpected IOException with stream: 
" + new String( buf, off, len ) );
             }
         }
     }

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/90654a0a/surefire-api/src/main/java/org/apache/maven/surefire/booter/MasterProcessCommand.java
----------------------------------------------------------------------
diff --git 
a/surefire-api/src/main/java/org/apache/maven/surefire/booter/MasterProcessCommand.java
 
b/surefire-api/src/main/java/org/apache/maven/surefire/booter/MasterProcessCommand.java
index d5f6375..0bd7b89 100644
--- 
a/surefire-api/src/main/java/org/apache/maven/surefire/booter/MasterProcessCommand.java
+++ 
b/surefire-api/src/main/java/org/apache/maven/surefire/booter/MasterProcessCommand.java
@@ -23,8 +23,8 @@ import java.io.DataInputStream;
 import java.io.IOException;
 import java.io.UnsupportedEncodingException;
 import java.nio.charset.Charset;
+
 import static java.lang.String.format;
-import org.apache.maven.surefire.util.internal.StringUtils;
 import static 
org.apache.maven.surefire.util.internal.ObjectUtils.requireNonNull;
 import static 
org.apache.maven.surefire.util.internal.StringUtils.FORK_STREAM_CHARSET_NAME;
 import static 
org.apache.maven.surefire.util.internal.StringUtils.encodeStringForForkCommunication;

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/90654a0a/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ForkedBooter.java
----------------------------------------------------------------------
diff --git 
a/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ForkedBooter.java
 
b/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ForkedBooter.java
index 6df3009..b76df2f 100644
--- 
a/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ForkedBooter.java
+++ 
b/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ForkedBooter.java
@@ -19,6 +19,14 @@ package org.apache.maven.surefire.booter;
  * under the License.
  */
 
+import org.apache.maven.surefire.providerapi.ProviderParameters;
+import org.apache.maven.surefire.providerapi.SurefireProvider;
+import org.apache.maven.surefire.report.LegacyPojoStackTraceWriter;
+import org.apache.maven.surefire.report.ReporterFactory;
+import org.apache.maven.surefire.report.StackTraceWriter;
+import org.apache.maven.surefire.suite.RunResult;
+import org.apache.maven.surefire.testset.TestSetFailedException;
+
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileNotFoundException;
@@ -30,19 +38,13 @@ import java.util.concurrent.ScheduledFuture;
 import java.util.concurrent.ScheduledThreadPoolExecutor;
 import java.util.concurrent.ThreadFactory;
 import java.util.concurrent.atomic.AtomicBoolean;
+
 import static java.lang.System.err;
 import static java.lang.System.out;
 import static java.lang.System.setErr;
 import static java.lang.System.setOut;
 import static java.lang.Thread.currentThread;
 import static java.util.concurrent.TimeUnit.SECONDS;
-import org.apache.maven.surefire.providerapi.ProviderParameters;
-import org.apache.maven.surefire.providerapi.SurefireProvider;
-import org.apache.maven.surefire.report.LegacyPojoStackTraceWriter;
-import org.apache.maven.surefire.report.ReporterFactory;
-import org.apache.maven.surefire.report.StackTraceWriter;
-import org.apache.maven.surefire.suite.RunResult;
-import org.apache.maven.surefire.testset.TestSetFailedException;
 import static org.apache.maven.surefire.booter.CommandReader.getReader;
 import static 
org.apache.maven.surefire.booter.ForkingRunListener.BOOTERCODE_BYE;
 import static 
org.apache.maven.surefire.booter.ForkingRunListener.BOOTERCODE_ERROR;

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/90654a0a/surefire-booter/src/main/java/org/apache/maven/surefire/booter/SystemPropertyManager.java
----------------------------------------------------------------------
diff --git 
a/surefire-booter/src/main/java/org/apache/maven/surefire/booter/SystemPropertyManager.java
 
b/surefire-booter/src/main/java/org/apache/maven/surefire/booter/SystemPropertyManager.java
index 8d301dc..a80656e 100644
--- 
a/surefire-booter/src/main/java/org/apache/maven/surefire/booter/SystemPropertyManager.java
+++ 
b/surefire-booter/src/main/java/org/apache/maven/surefire/booter/SystemPropertyManager.java
@@ -24,7 +24,6 @@ import java.io.FileInputStream;
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
-import java.io.OutputStream;
 import java.util.Map;
 import java.util.Properties;
 import java.util.concurrent.ConcurrentHashMap;
@@ -49,8 +48,6 @@ public class SystemPropertyManager
         {
             Properties p = new Properties();
             p.load( inStream );
-            inStream.close();
-            inStream = null;
             Map<String, String> map = new ConcurrentHashMap<String, String>( 
p.size() );
             // @todo use .stringPropertyNames() JDK6 instead of .keySet()
             for ( Map.Entry<?, ?> entry : p.entrySet() )
@@ -61,18 +58,7 @@ public class SystemPropertyManager
         }
         finally
         {
-            // @todo use try-with-resources JDK7, search in all code
-            try
-            {
-                if ( inStream != null )
-                {
-                    inStream.close();
-                }
-            }
-            catch ( final IOException e1 )
-            {
-                // Suppressed, so that the exception thrown in the try block 
will be propagated.
-            }
+            close( inStream ); // @todo use try-with-resources JDK7, search in 
all code
         }
     }
 
@@ -107,34 +93,21 @@ public class SystemPropertyManager
     public static void writePropertiesFile( File file, String name, Properties 
properties )
         throws IOException
     {
-        OutputStream out = null;
+        FileOutputStream out = new FileOutputStream( file );
+
         try
         {
-            out = new FileOutputStream( file );
+            /**
+             * See {@link Properties#store(java.io.OutputStream, String)} 
Javadoc - stream is flushed.
+             */
             properties.store( out, name );
-            out.close();
-            out = null;
         }
         finally
         {
-            try
-            {
-                if ( out != null )
-                {
-                    out.close();
-                }
-            }
-            catch ( final IOException e1 )
-            {
-                // Suppressed.
-            }
+            out.close();
         }
     }
 
-    /**
-     * @deprecated As of Java 7, please use the try-with-resources statement.
-     */
-    @Deprecated
     public static void close( InputStream inputStream )
     {
         if ( inputStream == null )

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/90654a0a/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/fixture/TestFile.java
----------------------------------------------------------------------
diff --git 
a/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/fixture/TestFile.java
 
b/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/fixture/TestFile.java
index eb33e78..6d3d8e2 100644
--- 
a/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/fixture/TestFile.java
+++ 
b/surefire-integration-tests/src/test/java/org/apache/maven/surefire/its/fixture/TestFile.java
@@ -28,8 +28,10 @@ import java.io.IOException;
 import java.net.URI;
 import java.nio.charset.Charset;
 import java.util.List;
-import junit.framework.Assert;
 import org.apache.commons.io.FileUtils;
+
+import junit.framework.Assert;
+
 import static junit.framework.Assert.assertTrue;
 
 /**
@@ -101,8 +103,6 @@ public class TestFile
             {
                 sb.append( line );
             }
-            reader.close();
-            reader = null;
             return sb.toString();
         }
         catch ( IOException e )

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/90654a0a/surefire-integration-tests/src/test/resources/classpath-order/src/test/java/it/BasicTest.java
----------------------------------------------------------------------
diff --git 
a/surefire-integration-tests/src/test/resources/classpath-order/src/test/java/it/BasicTest.java
 
b/surefire-integration-tests/src/test/resources/classpath-order/src/test/java/it/BasicTest.java
index e595cd6..f46e3be 100644
--- 
a/surefire-integration-tests/src/test/resources/classpath-order/src/test/java/it/BasicTest.java
+++ 
b/surefire-integration-tests/src/test/resources/classpath-order/src/test/java/it/BasicTest.java
@@ -44,17 +44,14 @@ public class BasicTest
     }
 
     private Properties getProperties( String resource )
-        throws IOException
+            throws IOException
     {
-        InputStream in = null;
+        InputStream in = getClass().getResourceAsStream( resource );
+        assertNotNull( in );
         try
         {
-            in = getClass().getResourceAsStream( resource );
-            assertNotNull( in );
             Properties props = new Properties();
             props.load( in );
-            in.close();
-            in = null;
             return props;
         }
         catch ( IOException e )
@@ -64,16 +61,9 @@ public class BasicTest
         }
         finally
         {
-            try
-            {
-                if ( in != null )
-                {
-                    in.close();
-                }
-            }
-            catch ( final IOException e )
+            if ( in != null )
             {
-                // Suppressed.
+                in.close();
             }
         }
     }

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/90654a0a/surefire-integration-tests/src/test/resources/junit4-runlistener/src/test/java/runListener/FileHelper.java
----------------------------------------------------------------------
diff --git 
a/surefire-integration-tests/src/test/resources/junit4-runlistener/src/test/java/runListener/FileHelper.java
 
b/surefire-integration-tests/src/test/resources/junit4-runlistener/src/test/java/runListener/FileHelper.java
index c842a1d..0112f31 100644
--- 
a/surefire-integration-tests/src/test/resources/junit4-runlistener/src/test/java/runListener/FileHelper.java
+++ 
b/surefire-integration-tests/src/test/resources/junit4-runlistener/src/test/java/runListener/FileHelper.java
@@ -33,8 +33,7 @@ public class FileHelper
         {
             writer = new FileWriter( new File( new File( "target" 
).getAbsoluteFile(), fileName ) );
             writer.write( content );
-            writer.close();
-            writer = null;
+            writer.flush();
         }
         catch ( IOException e )
         {
@@ -51,7 +50,7 @@ public class FileHelper
             }
             catch ( final IOException e )
             {
-                // Suppressed, so that the exception thrown in the try block 
will be propagated.
+                // Suppressed.
             }
         }
     }

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/90654a0a/surefire-integration-tests/src/test/resources/surefire-803-multiFailsafeExec-failureInFirst/src/test/java/org/apache/maven/surefire/test/FailingTest.java
----------------------------------------------------------------------
diff --git 
a/surefire-integration-tests/src/test/resources/surefire-803-multiFailsafeExec-failureInFirst/src/test/java/org/apache/maven/surefire/test/FailingTest.java
 
b/surefire-integration-tests/src/test/resources/surefire-803-multiFailsafeExec-failureInFirst/src/test/java/org/apache/maven/surefire/test/FailingTest.java
index 30224e1..dc651e7 100644
--- 
a/surefire-integration-tests/src/test/resources/surefire-803-multiFailsafeExec-failureInFirst/src/test/java/org/apache/maven/surefire/test/FailingTest.java
+++ 
b/surefire-integration-tests/src/test/resources/surefire-803-multiFailsafeExec-failureInFirst/src/test/java/org/apache/maven/surefire/test/FailingTest.java
@@ -60,27 +60,14 @@ public class FailingTest
         final File f = new File( "target/tests-run", getClass().getName() + 
".txt" );
         f.getParentFile().mkdirs();
 
-        FileWriter w = null;
+        FileWriter w = new FileWriter( f, true );
         try
         {
-            w = new FileWriter( f, true );
             w.write( name.getMethodName() );
-            w.close();
-            w = null;
         }
         finally
         {
-            if ( w != null )
-            {
-                try
-                {
-                    w.close();
-                }
-                catch ( final IOException e )
-                {
-                    // Suppressed.
-                }
-            }
+            w.close();
         }
     }
 }

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/90654a0a/surefire-integration-tests/src/test/resources/surefire-803-multiFailsafeExec-failureInFirst/src/test/java/org/apache/maven/surefire/test/SucceedingTest.java
----------------------------------------------------------------------
diff --git 
a/surefire-integration-tests/src/test/resources/surefire-803-multiFailsafeExec-failureInFirst/src/test/java/org/apache/maven/surefire/test/SucceedingTest.java
 
b/surefire-integration-tests/src/test/resources/surefire-803-multiFailsafeExec-failureInFirst/src/test/java/org/apache/maven/surefire/test/SucceedingTest.java
index 2ed21eb..f924074 100644
--- 
a/surefire-integration-tests/src/test/resources/surefire-803-multiFailsafeExec-failureInFirst/src/test/java/org/apache/maven/surefire/test/SucceedingTest.java
+++ 
b/surefire-integration-tests/src/test/resources/surefire-803-multiFailsafeExec-failureInFirst/src/test/java/org/apache/maven/surefire/test/SucceedingTest.java
@@ -60,28 +60,15 @@ public class SucceedingTest
         final File f = new File( "target/tests-run", getClass().getName() + 
".txt" );
         f.getParentFile().mkdirs();
 
-        FileWriter w = null;
+        FileWriter w = new FileWriter( f, true );
 
         try
         {
-            w = new FileWriter( f, true );
             w.write( name.getMethodName() );
-            w.close();
-            w = null;
         }
         finally
         {
-            if ( w != null )
-            {
-                try
-                {
-                    w.close();
-                }
-                catch ( final IOException e )
-                {
-                    // Suppressed.
-                }
-            }
+            w.close();
         }
     }
 }

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/90654a0a/surefire-integration-tests/src/test/resources/test-helper-dump-pid-plugin/src/main/java/org/apache/maven/plugins/surefire/dumppid/DumpPidMojo.java
----------------------------------------------------------------------
diff --git 
a/surefire-integration-tests/src/test/resources/test-helper-dump-pid-plugin/src/main/java/org/apache/maven/plugins/surefire/dumppid/DumpPidMojo.java
 
b/surefire-integration-tests/src/test/resources/test-helper-dump-pid-plugin/src/main/java/org/apache/maven/plugins/surefire/dumppid/DumpPidMojo.java
index b010d22..aa44b64 100644
--- 
a/surefire-integration-tests/src/test/resources/test-helper-dump-pid-plugin/src/main/java/org/apache/maven/plugins/surefire/dumppid/DumpPidMojo.java
+++ 
b/surefire-integration-tests/src/test/resources/test-helper-dump-pid-plugin/src/main/java/org/apache/maven/plugins/surefire/dumppid/DumpPidMojo.java
@@ -51,12 +51,11 @@ public class DumpPidMojo
             {
                 targetDir.mkdirs();
             }
-
             fw = new FileWriter( target );
-            final String pid = ManagementFactory.getRuntimeMXBean().getName();
+            String pid = ManagementFactory.getRuntimeMXBean().getName();
             fw.write( pid );
-            fw.close();
-            fw = null;
+            fw.flush();
+
             getLog().info( "Wrote " + pid + " to " + target );
         }
         catch ( IOException e )

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/90654a0a/surefire-integration-tests/src/test/resources/testng-listener-reporter/src/test/java/listenReport/FileHelper.java
----------------------------------------------------------------------
diff --git 
a/surefire-integration-tests/src/test/resources/testng-listener-reporter/src/test/java/listenReport/FileHelper.java
 
b/surefire-integration-tests/src/test/resources/testng-listener-reporter/src/test/java/listenReport/FileHelper.java
index 4405996..031b1fa 100644
--- 
a/surefire-integration-tests/src/test/resources/testng-listener-reporter/src/test/java/listenReport/FileHelper.java
+++ 
b/surefire-integration-tests/src/test/resources/testng-listener-reporter/src/test/java/listenReport/FileHelper.java
@@ -33,8 +33,6 @@ public class FileHelper
         {
             writer = new FileWriter( new File( new File( "target" 
).getAbsoluteFile(), fileName ) );
             writer.write( content );
-            writer.close();
-            writer = null;
         }
         catch ( IOException e )
         {
@@ -51,7 +49,7 @@ public class FileHelper
             }
             catch ( final IOException e )
             {
-                // Suppressed.
+                throw new RuntimeException( e );
             }
         }
     }

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/90654a0a/surefire-integration-tests/src/test/resources/testng-objectFactory/src/test/java/testng/objectfactory/FileHelper.java
----------------------------------------------------------------------
diff --git 
a/surefire-integration-tests/src/test/resources/testng-objectFactory/src/test/java/testng/objectfactory/FileHelper.java
 
b/surefire-integration-tests/src/test/resources/testng-objectFactory/src/test/java/testng/objectfactory/FileHelper.java
index 4525e29..7e2e820 100644
--- 
a/surefire-integration-tests/src/test/resources/testng-objectFactory/src/test/java/testng/objectfactory/FileHelper.java
+++ 
b/surefire-integration-tests/src/test/resources/testng-objectFactory/src/test/java/testng/objectfactory/FileHelper.java
@@ -16,8 +16,7 @@ public class FileHelper
                                                          "target" 
).getCanonicalFile(), fileName ), true );
 
             writer.write( content );
-            writer.close();
-            writer = null;
+            writer.flush();
         }
         catch ( IOException exception )
         {

http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/90654a0a/surefire-integration-tests/src/test/resources/testng-testRunnerFactory/src/test/java/testng/testrunnerfactory/FileHelper.java
----------------------------------------------------------------------
diff --git 
a/surefire-integration-tests/src/test/resources/testng-testRunnerFactory/src/test/java/testng/testrunnerfactory/FileHelper.java
 
b/surefire-integration-tests/src/test/resources/testng-testRunnerFactory/src/test/java/testng/testrunnerfactory/FileHelper.java
index b0a8e92..5451dbf 100644
--- 
a/surefire-integration-tests/src/test/resources/testng-testRunnerFactory/src/test/java/testng/testrunnerfactory/FileHelper.java
+++ 
b/surefire-integration-tests/src/test/resources/testng-testRunnerFactory/src/test/java/testng/testrunnerfactory/FileHelper.java
@@ -3,21 +3,19 @@ package testng.testrunnerfactory;
 import java.io.File;
 import java.io.FileWriter;
 import java.io.IOException;
-import java.io.Writer;
 
 public class FileHelper
 {
     public static void writeFile( String fileName, String content )
     {
-        Writer writer = null;
+        FileWriter out = null;
         try
         {
-            writer = new FileWriter( new File( new File( System.getProperty( 
"user.dir" ),
-                                                         "target" 
).getCanonicalFile(), fileName ), true );
-
-            writer.write( content );
-            writer.close();
-            writer = null;
+            File target = new File( System.getProperty("user.dir"), "target" 
).getCanonicalFile();
+            File listenerOutput = new File( target, fileName );
+            out = new FileWriter( listenerOutput, true );
+            out.write( content );
+            out.flush();
         }
         catch ( IOException e )
         {
@@ -25,15 +23,15 @@ public class FileHelper
         }
         finally
         {
-            if ( writer != null )
+            if ( out != null )
             {
                 try
                 {
-                    writer.close();
+                    out.close();
                 }
                 catch ( IOException e )
                 {
-                    // Suppressed, so that the exception thrown in the try 
block will be propagated.
+                    throw new RuntimeException( e );
                 }
             }
         }

Reply via email to