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";