You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2020/08/20 20:39:59 UTC

[commons-io] branch master updated: Deprecate IOUtils.LINE_SEPARATOR in favor of Java 7's System.lineSeparator().

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

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-io.git


The following commit(s) were added to refs/heads/master by this push:
     new 870b9e2  Deprecate IOUtils.LINE_SEPARATOR in favor of Java 7's System.lineSeparator().
870b9e2 is described below

commit 870b9e242ac44b14cbbbffdabf8aaecbf0ea7ac5
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Thu Aug 20 16:39:51 2020 -0400

    Deprecate IOUtils.LINE_SEPARATOR in favor of Java 7's
    System.lineSeparator().
    
    - Remove unused imports.
    - Fix compiler warnings by using try-with-resources.
    - Document empty block.
    - Remove checked exceptions from test methods that do not throw them.
---
 src/changes/changes.xml                            |  3 ++
 src/main/java/org/apache/commons/io/FileUtils.java |  1 -
 src/main/java/org/apache/commons/io/IOUtils.java   | 19 +++-------
 .../org/apache/commons/io/FileUtilsTestCase.java   | 44 +++++++++++-----------
 .../apache/commons/io/IOUtilsWriteTestCase.java    |  6 +--
 .../io/file/PathUtilsDeleteDirectoryTest.java      |  1 -
 .../commons/io/file/PathUtilsDeleteTest.java       |  2 -
 .../commons/io/input/CountingInputStreamTest.java  |  2 -
 .../io/output/CountingOutputStreamTest.java        |  5 ---
 .../java/org/apache/commons/io/test/TestUtils.java | 15 ++++----
 10 files changed, 42 insertions(+), 56 deletions(-)

diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index d8fe476..cca09e5 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -125,6 +125,9 @@ The <action> type attribute can be add,update,fix,remove.
         Add IOUtils.consume(InputStream).
       </action>
       <!-- UPDATES -->
+      <action dev="ggregory" type="add" due-to="Gary Gregory">
+        Deprecate IOUtils.LINE_SEPARATOR in favor of Java 7's System.lineSeparator().
+      </action>
       <action dev="ggregory" type="update" due-to="Gary Gregory">
         Replace FindBugs with SpotBugs.
       </action>
diff --git a/src/main/java/org/apache/commons/io/FileUtils.java b/src/main/java/org/apache/commons/io/FileUtils.java
index b63d054..9c27372 100644
--- a/src/main/java/org/apache/commons/io/FileUtils.java
+++ b/src/main/java/org/apache/commons/io/FileUtils.java
@@ -55,7 +55,6 @@ import org.apache.commons.io.filefilter.FileFilterUtils;
 import org.apache.commons.io.filefilter.IOFileFilter;
 import org.apache.commons.io.filefilter.SuffixFileFilter;
 import org.apache.commons.io.filefilter.TrueFileFilter;
-import org.apache.commons.io.output.NullOutputStream;
 
 /**
  * General file manipulation utilities.
diff --git a/src/main/java/org/apache/commons/io/IOUtils.java b/src/main/java/org/apache/commons/io/IOUtils.java
index 62b3976..1591e50 100644
--- a/src/main/java/org/apache/commons/io/IOUtils.java
+++ b/src/main/java/org/apache/commons/io/IOUtils.java
@@ -30,7 +30,6 @@ import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.io.OutputStream;
 import java.io.OutputStreamWriter;
-import java.io.PrintWriter;
 import java.io.Reader;
 import java.io.Writer;
 import java.net.HttpURLConnection;
@@ -136,8 +135,11 @@ public class IOUtils {
 
     /**
      * The system line separator string.
+     * 
+     * @deprecated Use {@link System#lineSeparator()}.
      */
-    public static final String LINE_SEPARATOR;
+    @Deprecated
+    public static final String LINE_SEPARATOR = System.lineSeparator();
 
     /**
      * The Unix line separator string.
@@ -167,15 +169,6 @@ public class IOUtils {
      */
     private static char[] SKIP_CHAR_BUFFER;
 
-    static {
-        // avoid security issues
-        try (final StringBuilderWriter buf = new StringBuilderWriter(4);
-                final PrintWriter out = new PrintWriter(buf)) {
-            out.println();
-            LINE_SEPARATOR = buf.toString();
-        }
-    }
-
     /**
      * Returns the given InputStream if it is already a {@link BufferedInputStream}, otherwise creates a
      * BufferedInputStream from the given InputStream.
@@ -3289,7 +3282,7 @@ public class IOUtils {
             return;
         }
         if (lineEnding == null) {
-            lineEnding = LINE_SEPARATOR;
+            lineEnding = System.lineSeparator();
         }
         final Charset cs = Charsets.toCharset(charset);
         for (final Object line : lines) {
@@ -3341,7 +3334,7 @@ public class IOUtils {
             return;
         }
         if (lineEnding == null) {
-            lineEnding = LINE_SEPARATOR;
+            lineEnding = System.lineSeparator();
         }
         for (final Object line : lines) {
             if (line != null) {
diff --git a/src/test/java/org/apache/commons/io/FileUtilsTestCase.java b/src/test/java/org/apache/commons/io/FileUtilsTestCase.java
index e6c0a39..b4aed65 100644
--- a/src/test/java/org/apache/commons/io/FileUtilsTestCase.java
+++ b/src/test/java/org/apache/commons/io/FileUtilsTestCase.java
@@ -2102,9 +2102,9 @@ public class FileUtilsTestCase {
         final File file = TestUtils.newFile(temporaryFolder, "lines.txt");
         FileUtils.writeLines(file, "US-ASCII", list, null);
 
-        final String expected = "hello" + IOUtils.LINE_SEPARATOR + "world" + IOUtils.LINE_SEPARATOR +
-                IOUtils.LINE_SEPARATOR + "this is" + IOUtils.LINE_SEPARATOR +
-                IOUtils.LINE_SEPARATOR + "some text" + IOUtils.LINE_SEPARATOR;
+        final String expected = "hello" + System.lineSeparator() + "world" + System.lineSeparator() +
+                System.lineSeparator() + "this is" + System.lineSeparator() +
+                System.lineSeparator() + "some text" + System.lineSeparator();
         final String actual = FileUtils.readFileToString(file, "US-ASCII");
         assertEquals(expected, actual);
     }
@@ -2118,9 +2118,9 @@ public class FileUtilsTestCase {
         final File file = TestUtils.newFile(temporaryFolder, "lines.txt");
         FileUtils.writeLines(file, "US-ASCII", list);
 
-        final String expected = "hello" + IOUtils.LINE_SEPARATOR + "world" + IOUtils.LINE_SEPARATOR +
-                IOUtils.LINE_SEPARATOR + "this is" + IOUtils.LINE_SEPARATOR +
-                IOUtils.LINE_SEPARATOR + "some text" + IOUtils.LINE_SEPARATOR;
+        final String expected = "hello" + System.lineSeparator() + "world" + System.lineSeparator() +
+                System.lineSeparator() + "this is" + System.lineSeparator() +
+                System.lineSeparator() + "some text" + System.lineSeparator();
         final String actual = FileUtils.readFileToString(file, "US-ASCII");
         assertEquals(expected, actual);
     }
@@ -2135,8 +2135,8 @@ public class FileUtilsTestCase {
 
         final String expected = "This line was there before you..."
                 + "my first line"
-                + IOUtils.LINE_SEPARATOR + "The second Line"
-                + IOUtils.LINE_SEPARATOR;
+                + System.lineSeparator() + "The second Line"
+                + System.lineSeparator();
         final String actual = FileUtils.readFileToString(file);
         assertEquals(expected, actual);
     }
@@ -2150,8 +2150,8 @@ public class FileUtilsTestCase {
         FileUtils.writeLines(file, null, linesToAppend, null, false);
 
         final String expected = "my first line"
-                + IOUtils.LINE_SEPARATOR + "The second Line"
-                + IOUtils.LINE_SEPARATOR;
+                + System.lineSeparator() + "The second Line"
+                + System.lineSeparator();
         final String actual = FileUtils.readFileToString(file);
         assertEquals(expected, actual);
     }
@@ -2166,8 +2166,8 @@ public class FileUtilsTestCase {
 
         final String expected = "This line was there before you..."
                 + "my first line"
-                + IOUtils.LINE_SEPARATOR + "The second Line"
-                + IOUtils.LINE_SEPARATOR;
+                + System.lineSeparator() + "The second Line"
+                + System.lineSeparator();
         final String actual = FileUtils.readFileToString(file);
         assertEquals(expected, actual);
     }
@@ -2181,8 +2181,8 @@ public class FileUtilsTestCase {
         FileUtils.writeLines(file, linesToAppend, null, false);
 
         final String expected = "my first line"
-                + IOUtils.LINE_SEPARATOR + "The second Line"
-                + IOUtils.LINE_SEPARATOR;
+                + System.lineSeparator() + "The second Line"
+                + System.lineSeparator();
         final String actual = FileUtils.readFileToString(file);
         assertEquals(expected, actual);
     }
@@ -2198,8 +2198,8 @@ public class FileUtilsTestCase {
 
         final String expected = "This line was there before you..."
                 + "my first line"
-                + IOUtils.LINE_SEPARATOR + "The second Line"
-                + IOUtils.LINE_SEPARATOR;
+                + System.lineSeparator() + "The second Line"
+                + System.lineSeparator();
         final String actual = FileUtils.readFileToString(file);
         assertEquals(expected, actual);
     }
@@ -2213,8 +2213,8 @@ public class FileUtilsTestCase {
         FileUtils.writeLines(file, null, linesToAppend, false);
 
         final String expected = "my first line"
-                + IOUtils.LINE_SEPARATOR + "The second Line"
-                + IOUtils.LINE_SEPARATOR;
+                + System.lineSeparator() + "The second Line"
+                + System.lineSeparator();
         final String actual = FileUtils.readFileToString(file);
         assertEquals(expected, actual);
     }
@@ -2229,8 +2229,8 @@ public class FileUtilsTestCase {
 
         final String expected = "This line was there before you..."
                 + "my first line"
-                + IOUtils.LINE_SEPARATOR + "The second Line"
-                + IOUtils.LINE_SEPARATOR;
+                + System.lineSeparator() + "The second Line"
+                + System.lineSeparator();
         final String actual = FileUtils.readFileToString(file);
         assertEquals(expected, actual);
     }
@@ -2244,8 +2244,8 @@ public class FileUtilsTestCase {
         FileUtils.writeLines(file, linesToAppend, false);
 
         final String expected = "my first line"
-                + IOUtils.LINE_SEPARATOR + "The second Line"
-                + IOUtils.LINE_SEPARATOR;
+                + System.lineSeparator() + "The second Line"
+                + System.lineSeparator();
         final String actual = FileUtils.readFileToString(file);
         assertEquals(expected, actual);
     }
diff --git a/src/test/java/org/apache/commons/io/IOUtilsWriteTestCase.java b/src/test/java/org/apache/commons/io/IOUtilsWriteTestCase.java
index c6cf2b1..6d22f88 100644
--- a/src/test/java/org/apache/commons/io/IOUtilsWriteTestCase.java
+++ b/src/test/java/org/apache/commons/io/IOUtilsWriteTestCase.java
@@ -622,7 +622,7 @@ public class IOUtilsWriteTestCase {
         out.off();
         out.flush();
 
-        final String expected = "hello" + IOUtils.LINE_SEPARATOR + "world" + IOUtils.LINE_SEPARATOR;
+        final String expected = "hello" + System.lineSeparator() + "world" + System.lineSeparator();
         final String actual = baout.toString();
         assertEquals(expected, actual);
     }
@@ -682,7 +682,7 @@ public class IOUtilsWriteTestCase {
         out.off();
         out.flush();
 
-        final String expected = "hello" + IOUtils.LINE_SEPARATOR + "world" + IOUtils.LINE_SEPARATOR;
+        final String expected = "hello" + System.lineSeparator() + "world" + System.lineSeparator();
         final String actual = baout.toString();
         assertEquals(expected, actual);
     }
@@ -767,7 +767,7 @@ public class IOUtilsWriteTestCase {
         out.off();
         writer.flush();
 
-        final String expected = "hello" + IOUtils.LINE_SEPARATOR + "world" + IOUtils.LINE_SEPARATOR;
+        final String expected = "hello" + System.lineSeparator() + "world" + System.lineSeparator();
         final String actual = baout.toString();
         assertEquals(expected, actual);
     }
diff --git a/src/test/java/org/apache/commons/io/file/PathUtilsDeleteDirectoryTest.java b/src/test/java/org/apache/commons/io/file/PathUtilsDeleteDirectoryTest.java
index f126f0a..441b9bd 100644
--- a/src/test/java/org/apache/commons/io/file/PathUtilsDeleteDirectoryTest.java
+++ b/src/test/java/org/apache/commons/io/file/PathUtilsDeleteDirectoryTest.java
@@ -20,7 +20,6 @@ package org.apache.commons.io.file;
 import static org.apache.commons.io.file.CounterAssertions.assertCounts;
 
 import java.io.IOException;
-import java.nio.file.FileVisitOption;
 import java.nio.file.Files;
 import java.nio.file.Path;
 import java.nio.file.Paths;
diff --git a/src/test/java/org/apache/commons/io/file/PathUtilsDeleteTest.java b/src/test/java/org/apache/commons/io/file/PathUtilsDeleteTest.java
index b509a49..61651f2 100644
--- a/src/test/java/org/apache/commons/io/file/PathUtilsDeleteTest.java
+++ b/src/test/java/org/apache/commons/io/file/PathUtilsDeleteTest.java
@@ -19,10 +19,8 @@ package org.apache.commons.io.file;
 
 import static org.apache.commons.io.file.CounterAssertions.assertCounts;
 
-import java.awt.geom.PathIterator;
 import java.io.IOException;
 import java.nio.file.Files;
-import java.nio.file.LinkOption;
 import java.nio.file.Path;
 import java.nio.file.Paths;
 
diff --git a/src/test/java/org/apache/commons/io/input/CountingInputStreamTest.java b/src/test/java/org/apache/commons/io/input/CountingInputStreamTest.java
index b710a38..0ca3141 100644
--- a/src/test/java/org/apache/commons/io/input/CountingInputStreamTest.java
+++ b/src/test/java/org/apache/commons/io/input/CountingInputStreamTest.java
@@ -21,10 +21,8 @@ import static org.junit.jupiter.api.Assertions.fail;
 
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
-import java.io.OutputStream;
 
 import org.apache.commons.io.IOUtils;
-import org.apache.commons.io.output.NullOutputStream;
 import org.junit.jupiter.api.Test;
 
 /**
diff --git a/src/test/java/org/apache/commons/io/output/CountingOutputStreamTest.java b/src/test/java/org/apache/commons/io/output/CountingOutputStreamTest.java
index 5ce521a..f670851 100644
--- a/src/test/java/org/apache/commons/io/output/CountingOutputStreamTest.java
+++ b/src/test/java/org/apache/commons/io/output/CountingOutputStreamTest.java
@@ -16,26 +16,21 @@
  */
 package org.apache.commons.io.output;
 
-
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.fail;
 
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
-import java.io.OutputStream;
 
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.io.input.NullInputStream;
 import org.junit.jupiter.api.Test;
 
-
 /**
  *
  */
-
 public class CountingOutputStreamTest {
 
-
     @Test
     public void testCounting() throws IOException {
         final ByteArrayOutputStream baos = new ByteArrayOutputStream();
diff --git a/src/test/java/org/apache/commons/io/test/TestUtils.java b/src/test/java/org/apache/commons/io/test/TestUtils.java
index 1647de2..86e53a7 100644
--- a/src/test/java/org/apache/commons/io/test/TestUtils.java
+++ b/src/test/java/org/apache/commons/io/test/TestUtils.java
@@ -60,9 +60,10 @@ public abstract class TestUtils {
 
     public static byte[] generateTestData(final long size) {
         try {
-            final ByteArrayOutputStream baout = new ByteArrayOutputStream();
-            generateTestData(baout, size);
-            return baout.toByteArray();
+            try (final ByteArrayOutputStream baout = new ByteArrayOutputStream()) {
+                generateTestData(baout, size);
+                return baout.toByteArray();
+            }
         } catch (final IOException ioe) {
             throw new RuntimeException("This should never happen: " + ioe.getMessage());
         }
@@ -183,7 +184,7 @@ public abstract class TestUtils {
         }
     }
 
-    public static void checkWrite(final OutputStream output) throws Exception {
+    public static void checkWrite(final OutputStream output) {
         try {
             new java.io.PrintStream(output).write(0);
         } catch (final Throwable t) {
@@ -191,7 +192,7 @@ public abstract class TestUtils {
         }
     }
 
-    public static void checkWrite(final Writer output) throws Exception {
+    public static void checkWrite(final Writer output) {
         try {
             new java.io.PrintWriter(output).write('a');
         } catch (final Throwable t) {
@@ -199,8 +200,7 @@ public abstract class TestUtils {
         }
     }
 
-    public static void deleteFile(final File file)
-            throws Exception {
+    public static void deleteFile(final File file) {
         if (file.exists()) {
             assertTrue(file.delete(), "Couldn't delete file: " + file);
         }
@@ -228,6 +228,7 @@ public abstract class TestUtils {
         try {
             sleep(ms);
         } catch (final InterruptedException ignored){
+            // ignore InterruptedException.
         }
     }