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/04/13 18:21:10 UTC

[commons-io] branch master updated: [IO-666] Normalize internal buffers to 8192 bytes.

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 6a78ef8  [IO-666] Normalize internal buffers to 8192 bytes.
6a78ef8 is described below

commit 6a78ef8903ef7c2c785b8d0cc08a150d1e2ba818
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Mon Apr 13 14:21:06 2020 -0400

    [IO-666] Normalize internal buffers to 8192 bytes.
---
 src/changes/changes.xml                                       |  3 +++
 src/main/java/org/apache/commons/io/IOUtils.java              |  2 +-
 .../org/apache/commons/io/input/ObservableInputStream.java    |  4 +++-
 .../org/apache/commons/io/input/ReversedLinesFileReader.java  |  3 ++-
 src/main/java/org/apache/commons/io/input/Tailer.java         | 11 +++++------
 .../java/org/apache/commons/io/input/XmlStreamReader.java     |  3 ++-
 .../commons/io/input/buffer/CircularBufferInputStream.java    |  6 ++++--
 .../apache/commons/io/input/buffer/CircularByteBuffer.java    |  6 ++++--
 .../java/org/apache/commons/io/output/XmlStreamWriter.java    |  3 ++-
 .../apache/commons/io/input/ObservableInputStreamTest.java    |  5 +++--
 .../commons/io/input/ReversedLinesFileReaderTestSimple.java   |  5 +++--
 src/test/java/org/apache/commons/io/input/TailerTest.java     |  4 ++--
 .../commons/io/input/compatibility/XmlStreamReader.java       |  3 ++-
 13 files changed, 36 insertions(+), 22 deletions(-)

diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 6ac8b74..6332c24 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -207,6 +207,9 @@ The <action> type attribute can be add,update,fix,remove.
       <action issue="IO-664" dev="ggregory" type="fix" due-to="Gary Gregory">
          org.apache.commons.io.FileUtils.copyURLToFile(*) open but do not close streams.
       </action>
+      <action issue="IO-666" dev="ggregory" type="update" due-to="Gary Gregory">
+         Normalize internal buffers to 8192 bytes.
+      </action>
     </release>
 
     <release version="2.6" date="2017-10-15" description="Java 7 required, Java 9 supported.">
diff --git a/src/main/java/org/apache/commons/io/IOUtils.java b/src/main/java/org/apache/commons/io/IOUtils.java
index e4af50b..75c3b10 100644
--- a/src/main/java/org/apache/commons/io/IOUtils.java
+++ b/src/main/java/org/apache/commons/io/IOUtils.java
@@ -110,7 +110,7 @@ public class IOUtils {
     /**
      * The default buffer size ({@value}) to use in copy methods.
      */
-    private static final int DEFAULT_BUFFER_SIZE = 1024 * 4;
+    public static final int DEFAULT_BUFFER_SIZE = 8192;
 
     /**
      * The system directory separator character.
diff --git a/src/main/java/org/apache/commons/io/input/ObservableInputStream.java b/src/main/java/org/apache/commons/io/input/ObservableInputStream.java
index 6519a3c..ece74ad 100644
--- a/src/main/java/org/apache/commons/io/input/ObservableInputStream.java
+++ b/src/main/java/org/apache/commons/io/input/ObservableInputStream.java
@@ -21,6 +21,8 @@ import java.io.InputStream;
 import java.util.ArrayList;
 import java.util.List;
 
+import org.apache.commons.io.IOUtils;
+
 
 /**
  * The {@link ObservableInputStream} allows, that an InputStream may be consumed
@@ -263,7 +265,7 @@ public class ObservableInputStream extends ProxyInputStream {
      *   observers has thrown an exception.
      */
     public void consume() throws IOException {
-        final byte[] buffer = new byte[8192];
+        final byte[] buffer = new byte[IOUtils.DEFAULT_BUFFER_SIZE];
         for (;;) {
             final int res = read(buffer);
             if (res == -1) {
diff --git a/src/main/java/org/apache/commons/io/input/ReversedLinesFileReader.java b/src/main/java/org/apache/commons/io/input/ReversedLinesFileReader.java
index b351a64..ed14d53 100644
--- a/src/main/java/org/apache/commons/io/input/ReversedLinesFileReader.java
+++ b/src/main/java/org/apache/commons/io/input/ReversedLinesFileReader.java
@@ -30,6 +30,7 @@ import java.nio.file.Path;
 import java.nio.file.StandardOpenOption;
 
 import org.apache.commons.io.Charsets;
+import org.apache.commons.io.IOUtils;
 
 /**
  * Reads lines in a file reversely (similar to a BufferedReader, but starting at
@@ -40,7 +41,7 @@ import org.apache.commons.io.Charsets;
 public class ReversedLinesFileReader implements Closeable {
 
     private static final String EMPTY_STRING = "";
-    private static final int DEFAULT_BLOCK_SIZE = 4096;
+    private static final int DEFAULT_BLOCK_SIZE = IOUtils.DEFAULT_BUFFER_SIZE;
 
     private final int blockSize;
     private final Charset encoding;
diff --git a/src/main/java/org/apache/commons/io/input/Tailer.java b/src/main/java/org/apache/commons/io/input/Tailer.java
index 9436886..0c2811f 100644
--- a/src/main/java/org/apache/commons/io/input/Tailer.java
+++ b/src/main/java/org/apache/commons/io/input/Tailer.java
@@ -26,6 +26,7 @@ import java.io.RandomAccessFile;
 import java.nio.charset.Charset;
 
 import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.IOUtils;
 
 /**
  * Simple implementation of the unix "tail -f" functionality.
@@ -123,8 +124,6 @@ public class Tailer implements Runnable {
 
     private static final String RAF_MODE = "r";
 
-    private static final int DEFAULT_BUFSIZE = 4096;
-
     // The default charset used for reading files
     private static final Charset DEFAULT_CHARSET = Charset.defaultCharset();
 
@@ -195,7 +194,7 @@ public class Tailer implements Runnable {
      * @param end Set to true to tail from the end of the file, false to tail from the beginning of the file.
      */
     public Tailer(final File file, final TailerListener listener, final long delayMillis, final boolean end) {
-        this(file, listener, delayMillis, end, DEFAULT_BUFSIZE);
+        this(file, listener, delayMillis, end, IOUtils.DEFAULT_BUFFER_SIZE);
     }
 
     /**
@@ -208,7 +207,7 @@ public class Tailer implements Runnable {
      */
     public Tailer(final File file, final TailerListener listener, final long delayMillis, final boolean end,
                   final boolean reOpen) {
-        this(file, listener, delayMillis, end, reOpen, DEFAULT_BUFSIZE);
+        this(file, listener, delayMillis, end, reOpen, IOUtils.DEFAULT_BUFFER_SIZE);
     }
 
     /**
@@ -329,7 +328,7 @@ public class Tailer implements Runnable {
      */
     public static Tailer create(final File file, final TailerListener listener, final long delayMillis,
                                 final boolean end) {
-        return create(file, listener, delayMillis, end, DEFAULT_BUFSIZE);
+        return create(file, listener, delayMillis, end, IOUtils.DEFAULT_BUFFER_SIZE);
     }
 
     /**
@@ -344,7 +343,7 @@ public class Tailer implements Runnable {
      */
     public static Tailer create(final File file, final TailerListener listener, final long delayMillis,
                                 final boolean end, final boolean reOpen) {
-        return create(file, listener, delayMillis, end, reOpen, DEFAULT_BUFSIZE);
+        return create(file, listener, delayMillis, end, reOpen, IOUtils.DEFAULT_BUFFER_SIZE);
     }
 
     /**
diff --git a/src/main/java/org/apache/commons/io/input/XmlStreamReader.java b/src/main/java/org/apache/commons/io/input/XmlStreamReader.java
index 7ce8858..a69b923 100644
--- a/src/main/java/org/apache/commons/io/input/XmlStreamReader.java
+++ b/src/main/java/org/apache/commons/io/input/XmlStreamReader.java
@@ -34,6 +34,7 @@ import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
 import org.apache.commons.io.ByteOrderMark;
+import org.apache.commons.io.IOUtils;
 
 /**
  * Character stream that handles all the necessary Voodoo to figure out the
@@ -63,7 +64,7 @@ import org.apache.commons.io.ByteOrderMark;
  * @since 2.0
  */
 public class XmlStreamReader extends Reader {
-    private static final int BUFFER_SIZE = 4096;
+    private static final int BUFFER_SIZE = IOUtils.DEFAULT_BUFFER_SIZE;
 
     private static final String UTF_8 = "UTF-8";
 
diff --git a/src/main/java/org/apache/commons/io/input/buffer/CircularBufferInputStream.java b/src/main/java/org/apache/commons/io/input/buffer/CircularBufferInputStream.java
index 32f2141..8438a15 100644
--- a/src/main/java/org/apache/commons/io/input/buffer/CircularBufferInputStream.java
+++ b/src/main/java/org/apache/commons/io/input/buffer/CircularBufferInputStream.java
@@ -20,6 +20,8 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.util.Objects;
 
+import org.apache.commons.io.IOUtils;
+
 
 /**
  * Implementation of a buffered input stream, which is internally based on the
@@ -52,12 +54,12 @@ public class CircularBufferInputStream extends InputStream {
 
     /**
      * Creates a new instance, which filters the given input stream, and
-     * uses a reasonable default buffer size (8192).
+     * uses a reasonable default buffer size ({@link IOUtils#DEFAULT_BUFFER_SIZE}).
      *
      * @param inputStream The input stream, which is being buffered.
      */
     public CircularBufferInputStream(final InputStream inputStream) {
-        this(inputStream, 8192);
+        this(inputStream, IOUtils.DEFAULT_BUFFER_SIZE);
     }
 
     /**
diff --git a/src/main/java/org/apache/commons/io/input/buffer/CircularByteBuffer.java b/src/main/java/org/apache/commons/io/input/buffer/CircularByteBuffer.java
index 9b497d9..863d10d 100644
--- a/src/main/java/org/apache/commons/io/input/buffer/CircularByteBuffer.java
+++ b/src/main/java/org/apache/commons/io/input/buffer/CircularByteBuffer.java
@@ -18,6 +18,8 @@ package org.apache.commons.io.input.buffer;
 
 import java.util.Objects;
 
+import org.apache.commons.io.IOUtils;
+
 /**
  * A buffer, which doesn't need reallocation of byte arrays, because it
  * reuses a single byte array. This works particularly well, if reading
@@ -42,10 +44,10 @@ public class CircularByteBuffer {
     }
 
     /**
-     * Creates a new instance with a reasonable default buffer size (8192).
+     * Creates a new instance with a reasonable default buffer size ({@link IOUtils#DEFAULT_BUFFER_SIZE}).
      */
     public CircularByteBuffer() {
-        this(8192);
+        this(IOUtils.DEFAULT_BUFFER_SIZE);
     }
 
     /**
diff --git a/src/main/java/org/apache/commons/io/output/XmlStreamWriter.java b/src/main/java/org/apache/commons/io/output/XmlStreamWriter.java
index c6ce13f..59849f7 100644
--- a/src/main/java/org/apache/commons/io/output/XmlStreamWriter.java
+++ b/src/main/java/org/apache/commons/io/output/XmlStreamWriter.java
@@ -28,6 +28,7 @@ import java.util.Locale;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
+import org.apache.commons.io.IOUtils;
 import org.apache.commons.io.input.XmlStreamReader;
 
 /**
@@ -38,7 +39,7 @@ import org.apache.commons.io.input.XmlStreamReader;
  * @since 2.0
  */
 public class XmlStreamWriter extends Writer {
-    private static final int BUFFER_SIZE = 4096;
+    private static final int BUFFER_SIZE = IOUtils.DEFAULT_BUFFER_SIZE;
 
     private final OutputStream out;
 
diff --git a/src/test/java/org/apache/commons/io/input/ObservableInputStreamTest.java b/src/test/java/org/apache/commons/io/input/ObservableInputStreamTest.java
index d792ba9..2a06c1e 100644
--- a/src/test/java/org/apache/commons/io/input/ObservableInputStreamTest.java
+++ b/src/test/java/org/apache/commons/io/input/ObservableInputStreamTest.java
@@ -23,6 +23,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
 
+import org.apache.commons.io.IOUtils;
 import org.apache.commons.io.input.ObservableInputStream.Observer;
 import org.junit.jupiter.api.Test;
 
@@ -72,7 +73,7 @@ public class ObservableInputStreamTest {
      */
     @Test
     public void testDataByteCalled() throws Exception {
-        final byte[] buffer = MessageDigestCalculatingInputStreamTest.generateRandomByteStream(4096);
+        final byte[] buffer = MessageDigestCalculatingInputStreamTest.generateRandomByteStream(IOUtils.DEFAULT_BUFFER_SIZE);
         final ObservableInputStream ois = new ObservableInputStream(new ByteArrayInputStream(buffer));
         final LastByteKeepingObserver lko = new LastByteKeepingObserver();
         assertEquals(-1, lko.lastByteSeen);
@@ -101,7 +102,7 @@ public class ObservableInputStreamTest {
      */
     @Test
     public void testDataBytesCalled() throws Exception {
-        final byte[] buffer = MessageDigestCalculatingInputStreamTest.generateRandomByteStream(4096);
+        final byte[] buffer = MessageDigestCalculatingInputStreamTest.generateRandomByteStream(IOUtils.DEFAULT_BUFFER_SIZE);
         final ByteArrayInputStream bais = new ByteArrayInputStream(buffer);
         final ObservableInputStream ois = new ObservableInputStream(bais);
         final LastBytesKeepingObserver lko = new LastBytesKeepingObserver();
diff --git a/src/test/java/org/apache/commons/io/input/ReversedLinesFileReaderTestSimple.java b/src/test/java/org/apache/commons/io/input/ReversedLinesFileReaderTestSimple.java
index 8c1a62c..5f74db8 100644
--- a/src/test/java/org/apache/commons/io/input/ReversedLinesFileReaderTestSimple.java
+++ b/src/test/java/org/apache/commons/io/input/ReversedLinesFileReaderTestSimple.java
@@ -24,6 +24,7 @@ import java.io.IOException;
 import java.io.UnsupportedEncodingException;
 import java.net.URISyntaxException;
 
+import org.apache.commons.io.IOUtils;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.Test;
 
@@ -55,14 +56,14 @@ public class ReversedLinesFileReaderTestSimple {
     public void testUnsupportedEncodingUTF16() throws URISyntaxException {
         final File testFileEmpty = new File(this.getClass().getResource("/test-file-empty.bin").toURI());
         assertThrows(UnsupportedEncodingException.class,
-                () -> new ReversedLinesFileReader(testFileEmpty, 4096, "UTF-16").close());
+                () -> new ReversedLinesFileReader(testFileEmpty, IOUtils.DEFAULT_BUFFER_SIZE, "UTF-16").close());
     }
 
     @Test
     public void testUnsupportedEncodingBig5() throws URISyntaxException {
         final File testFileEncodingBig5 = new File(this.getClass().getResource("/test-file-empty.bin").toURI());
         assertThrows(UnsupportedEncodingException.class,
-                () -> new ReversedLinesFileReader(testFileEncodingBig5, 4096, "Big5").close());
+                () -> new ReversedLinesFileReader(testFileEncodingBig5, IOUtils.DEFAULT_BUFFER_SIZE, "Big5").close());
     }
 
 
diff --git a/src/test/java/org/apache/commons/io/input/TailerTest.java b/src/test/java/org/apache/commons/io/input/TailerTest.java
index 2232125..3755456 100644
--- a/src/test/java/org/apache/commons/io/input/TailerTest.java
+++ b/src/test/java/org/apache/commons/io/input/TailerTest.java
@@ -132,7 +132,7 @@ public class TailerTest {
         final boolean isWindows = osname.startsWith("Windows");
         // Need to use UTF-8 to read & write the file otherwise it can be corrupted (depending on the default charset)
         final Charset charsetUTF8 = StandardCharsets.UTF_8;
-        tailer = new Tailer(file, charsetUTF8, listener, delay, false, isWindows, 4096);
+        tailer = new Tailer(file, charsetUTF8, listener, delay, false, isWindows, IOUtils.DEFAULT_BUFFER_SIZE);
         final Thread thread = new Thread(tailer);
         thread.start();
 
@@ -365,7 +365,7 @@ public class TailerTest {
         // Use a long delay to try to make sure the test thread calls interrupt() while the tailer thread is sleeping.
         final int delay = 1000;
         final int idle = 50; // allow time for thread to work
-        tailer = new Tailer(file, listener, delay, false, 4096);
+        tailer = new Tailer(file, listener, delay, false, IOUtils.DEFAULT_BUFFER_SIZE);
         final Thread thread = new Thread(tailer);
         thread.setDaemon(true);
         thread.start();
diff --git a/src/test/java/org/apache/commons/io/input/compatibility/XmlStreamReader.java b/src/test/java/org/apache/commons/io/input/compatibility/XmlStreamReader.java
index 1c7c0ff..7e5adff 100644
--- a/src/test/java/org/apache/commons/io/input/compatibility/XmlStreamReader.java
+++ b/src/test/java/org/apache/commons/io/input/compatibility/XmlStreamReader.java
@@ -33,6 +33,7 @@ import java.util.Locale;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
+import org.apache.commons.io.IOUtils;
 import org.apache.commons.io.output.XmlStreamWriter;
 
 /**
@@ -62,7 +63,7 @@ import org.apache.commons.io.output.XmlStreamWriter;
  * @see XmlStreamWriter
  */
 public class XmlStreamReader extends Reader {
-    private static final int BUFFER_SIZE = 4096;
+    private static final int BUFFER_SIZE = IOUtils.DEFAULT_BUFFER_SIZE;
 
     private static final String UTF_8 = "UTF-8";