You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by se...@apache.org on 2013/05/16 13:40:39 UTC

svn commit: r1483304 - /commons/proper/io/trunk/src/test/java/org/apache/commons/io/input/TailerTest.java

Author: sebb
Date: Thu May 16 11:40:38 2013
New Revision: 1483304

URL: http://svn.apache.org/r1483304
Log:
Test data file needs to be read/written using UTF-8

Modified:
    commons/proper/io/trunk/src/test/java/org/apache/commons/io/input/TailerTest.java

Modified: commons/proper/io/trunk/src/test/java/org/apache/commons/io/input/TailerTest.java
URL: http://svn.apache.org/viewvc/commons/proper/io/trunk/src/test/java/org/apache/commons/io/input/TailerTest.java?rev=1483304&r1=1483303&r2=1483304&view=diff
==============================================================================
--- commons/proper/io/trunk/src/test/java/org/apache/commons/io/input/TailerTest.java (original)
+++ commons/proper/io/trunk/src/test/java/org/apache/commons/io/input/TailerTest.java Thu May 16 11:40:38 2013
@@ -20,9 +20,11 @@ import java.io.BufferedReader;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
 import java.io.FileWriter;
 import java.io.IOException;
 import java.io.InputStreamReader;
+import java.io.OutputStreamWriter;
 import java.io.RandomAccessFile;
 import java.io.Writer;
 import java.nio.charset.Charset;
@@ -122,15 +124,20 @@ public class TailerTest extends FileBase
         final Thread thread = new Thread(tailer);
         thread.start();
 
+        // Need to use UTF-8 to read & write the file otherwise it can be corrupted (depending on the default charset)
+        final Charset charsetUTF8 = Charset.forName("UTF-8");
+        Writer out = new OutputStreamWriter(new FileOutputStream(file), charsetUTF8);
         BufferedReader reader = null;
         try{
             List<String> lines = new ArrayList<String>();
-            reader = new BufferedReader(new InputStreamReader(new FileInputStream(origin)));
+            reader = new BufferedReader(new InputStreamReader(new FileInputStream(origin), charsetUTF8));
             String line = null;
             while((line = reader.readLine()) != null){
-                write(file, line);
+                out.write(line);
+                out.write("\n");
                 lines.add(line);
             }
+            out.close(); // ensure data is written
 
            final long testDelayMillis = delay * 10;
            Thread.sleep(testDelayMillis);
@@ -148,6 +155,7 @@ public class TailerTest extends FileBase
         }finally{
             tailer.stop();
             IOUtils.closeQuietly(reader);
+            IOUtils.closeQuietly(out);
         }
     }