You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ti...@apache.org on 2018/12/30 18:10:54 UTC

[maven-surefire] branch master updated: [SUREFIRE-1619] FileReporter should not use PintWriter because i/o errors are not thrown

This is an automated email from the ASF dual-hosted git repository.

tibordigana pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-surefire.git


The following commit(s) were added to refs/heads/master by this push:
     new 7b1f70c  [SUREFIRE-1619] FileReporter should not use PintWriter because i/o errors are not thrown
7b1f70c is described below

commit 7b1f70c81a578e283593cab5963e7d85b68bd853
Author: Tibor17 <ti...@apache.org>
AuthorDate: Sun Dec 30 19:10:24 2018 +0100

    [SUREFIRE-1619] FileReporter should not use PintWriter because i/o errors are not thrown
---
 .../maven/plugin/surefire/report/FileReporter.java | 59 ++++++++++------------
 1 file changed, 28 insertions(+), 31 deletions(-)

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 290c252..5d25e6a 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,16 +19,14 @@ package org.apache.maven.plugin.surefire.report;
  * under the License.
  */
 
-import org.apache.maven.surefire.report.ReportEntry;
 import org.apache.maven.surefire.report.ReporterException;
 
 import java.io.BufferedWriter;
 import java.io.File;
+import java.io.FileNotFoundException;
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.OutputStreamWriter;
-import java.io.PrintWriter;
-import java.io.Writer;
 import java.nio.charset.Charset;
 import java.util.List;
 
@@ -54,7 +52,15 @@ public class FileReporter
         this.encoding = encoding;
     }
 
-    private PrintWriter testSetStarting( ReportEntry report )
+    static File getReportFile( File reportsDirectory, String reportEntryName, String reportNameSuffix,
+                                      String fileExtension )
+    {
+        String fileName =
+                reportEntryName + ( isNotBlank( reportNameSuffix ) ? "-" + reportNameSuffix : "" ) + fileExtension;
+        return new File( reportsDirectory, stripIllegalFilenameChars( fileName ) );
+    }
+
+    public void testSetCompleted( WrappedReportEntry report, TestSetStats testSetStats, List<String> testResults )
     {
         File reportFile = getReportFile( reportsDirectory, report.getName(), reportNameSuffix, ".txt" );
 
@@ -63,43 +69,34 @@ public class FileReporter
         // noinspection ResultOfMethodCallIgnored
         reportDir.mkdirs();
 
-        try
+        try ( BufferedWriter writer = createFileReporterWriter( reportFile, encoding ) )
         {
-            Writer encodedStream = new OutputStreamWriter( new FileOutputStream( reportFile ), encoding );
-
-            PrintWriter writer = new PrintWriter( new BufferedWriter( encodedStream, 16 * 1024 ) );
-
-            writer.println( "-------------------------------------------------------------------------------" );
+            writer.write( "-------------------------------------------------------------------------------" );
+            writer.newLine();
 
-            writer.println( "Test set: " + report.getName() );
+            writer.write( "Test set: " + report.getName() );
+            writer.newLine();
 
-            writer.println( "-------------------------------------------------------------------------------" );
+            writer.write( "-------------------------------------------------------------------------------" );
+            writer.newLine();
 
-            return writer;
+            writer.write( testSetStats.getTestSetSummary( report ) );
+            writer.newLine();
+            for ( String testResult : testResults )
+            {
+                writer.write( testResult );
+                writer.newLine();
+            }
         }
         catch ( IOException e )
         {
-            throw new ReporterException( "Unable to create file for report: " + e.getMessage(), e );
+            throw new ReporterException( "Unable to create file for report: " + e.getLocalizedMessage(), e );
         }
     }
 
-    static File getReportFile( File reportsDirectory, String reportEntryName, String reportNameSuffix,
-                                      String fileExtension )
-    {
-        String fileName =
-                reportEntryName + ( isNotBlank( reportNameSuffix ) ? "-" + reportNameSuffix : "" ) + fileExtension;
-        return new File( reportsDirectory, stripIllegalFilenameChars( fileName ) );
-    }
-
-    public void testSetCompleted( WrappedReportEntry report, TestSetStats testSetStats, List<String> testResults )
+    private static BufferedWriter createFileReporterWriter( File reportFile, Charset encoding )
+            throws FileNotFoundException
     {
-        try ( PrintWriter writer = testSetStarting( report ) )
-        {
-            writer.println( testSetStats.getTestSetSummary( report ) );
-            for ( String testResult : testResults )
-            {
-                writer.println( testResult );
-            }
-        }
+        return new BufferedWriter( new OutputStreamWriter( new FileOutputStream( reportFile ), encoding ), 64 * 1024 );
     }
 }