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 <garydgreg...@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";