Skip to content

Commit 6a78ef8

Browse files
committed
[IO-666] Normalize internal buffers to 8192 bytes.
1 parent 772c8f7 commit 6a78ef8

13 files changed

Lines changed: 36 additions & 22 deletions

src/changes/changes.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,9 @@ The <action> type attribute can be add,update,fix,remove.
207207
<action issue="IO-664" dev="ggregory" type="fix" due-to="Gary Gregory">
208208
org.apache.commons.io.FileUtils.copyURLToFile(*) open but do not close streams.
209209
</action>
210+
<action issue="IO-666" dev="ggregory" type="update" due-to="Gary Gregory">
211+
Normalize internal buffers to 8192 bytes.
212+
</action>
210213
</release>
211214

212215
<release version="2.6" date="2017-10-15" description="Java 7 required, Java 9 supported.">

src/main/java/org/apache/commons/io/IOUtils.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ public class IOUtils {
110110
/**
111111
* The default buffer size ({@value}) to use in copy methods.
112112
*/
113-
private static final int DEFAULT_BUFFER_SIZE = 1024 * 4;
113+
public static final int DEFAULT_BUFFER_SIZE = 8192;
114114

115115
/**
116116
* The system directory separator character.

src/main/java/org/apache/commons/io/input/ObservableInputStream.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@
2121
import java.util.ArrayList;
2222
import java.util.List;
2323

24+
import org.apache.commons.io.IOUtils;
25+
2426

2527
/**
2628
* The {@link ObservableInputStream} allows, that an InputStream may be consumed
@@ -263,7 +265,7 @@ public void close() throws IOException {
263265
* observers has thrown an exception.
264266
*/
265267
public void consume() throws IOException {
266-
final byte[] buffer = new byte[8192];
268+
final byte[] buffer = new byte[IOUtils.DEFAULT_BUFFER_SIZE];
267269
for (;;) {
268270
final int res = read(buffer);
269271
if (res == -1) {

src/main/java/org/apache/commons/io/input/ReversedLinesFileReader.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
import java.nio.file.StandardOpenOption;
3131

3232
import org.apache.commons.io.Charsets;
33+
import org.apache.commons.io.IOUtils;
3334

3435
/**
3536
* Reads lines in a file reversely (similar to a BufferedReader, but starting at
@@ -40,7 +41,7 @@
4041
public class ReversedLinesFileReader implements Closeable {
4142

4243
private static final String EMPTY_STRING = "";
43-
private static final int DEFAULT_BLOCK_SIZE = 4096;
44+
private static final int DEFAULT_BLOCK_SIZE = IOUtils.DEFAULT_BUFFER_SIZE;
4445

4546
private final int blockSize;
4647
private final Charset encoding;

src/main/java/org/apache/commons/io/input/Tailer.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import java.nio.charset.Charset;
2727

2828
import org.apache.commons.io.FileUtils;
29+
import org.apache.commons.io.IOUtils;
2930

3031
/**
3132
* Simple implementation of the unix "tail -f" functionality.
@@ -123,8 +124,6 @@ public class Tailer implements Runnable {
123124

124125
private static final String RAF_MODE = "r";
125126

126-
private static final int DEFAULT_BUFSIZE = 4096;
127-
128127
// The default charset used for reading files
129128
private static final Charset DEFAULT_CHARSET = Charset.defaultCharset();
130129

@@ -195,7 +194,7 @@ public Tailer(final File file, final TailerListener listener, final long delayMi
195194
* @param end Set to true to tail from the end of the file, false to tail from the beginning of the file.
196195
*/
197196
public Tailer(final File file, final TailerListener listener, final long delayMillis, final boolean end) {
198-
this(file, listener, delayMillis, end, DEFAULT_BUFSIZE);
197+
this(file, listener, delayMillis, end, IOUtils.DEFAULT_BUFFER_SIZE);
199198
}
200199

201200
/**
@@ -208,7 +207,7 @@ public Tailer(final File file, final TailerListener listener, final long delayMi
208207
*/
209208
public Tailer(final File file, final TailerListener listener, final long delayMillis, final boolean end,
210209
final boolean reOpen) {
211-
this(file, listener, delayMillis, end, reOpen, DEFAULT_BUFSIZE);
210+
this(file, listener, delayMillis, end, reOpen, IOUtils.DEFAULT_BUFFER_SIZE);
212211
}
213212

214213
/**
@@ -329,7 +328,7 @@ public static Tailer create(final File file, final Charset charset, final Tailer
329328
*/
330329
public static Tailer create(final File file, final TailerListener listener, final long delayMillis,
331330
final boolean end) {
332-
return create(file, listener, delayMillis, end, DEFAULT_BUFSIZE);
331+
return create(file, listener, delayMillis, end, IOUtils.DEFAULT_BUFFER_SIZE);
333332
}
334333

335334
/**
@@ -344,7 +343,7 @@ public static Tailer create(final File file, final TailerListener listener, fina
344343
*/
345344
public static Tailer create(final File file, final TailerListener listener, final long delayMillis,
346345
final boolean end, final boolean reOpen) {
347-
return create(file, listener, delayMillis, end, reOpen, DEFAULT_BUFSIZE);
346+
return create(file, listener, delayMillis, end, reOpen, IOUtils.DEFAULT_BUFFER_SIZE);
348347
}
349348

350349
/**

src/main/java/org/apache/commons/io/input/XmlStreamReader.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
import java.util.regex.Pattern;
3535

3636
import org.apache.commons.io.ByteOrderMark;
37+
import org.apache.commons.io.IOUtils;
3738

3839
/**
3940
* Character stream that handles all the necessary Voodoo to figure out the
@@ -63,7 +64,7 @@
6364
* @since 2.0
6465
*/
6566
public class XmlStreamReader extends Reader {
66-
private static final int BUFFER_SIZE = 4096;
67+
private static final int BUFFER_SIZE = IOUtils.DEFAULT_BUFFER_SIZE;
6768

6869
private static final String UTF_8 = "UTF-8";
6970

src/main/java/org/apache/commons/io/input/buffer/CircularBufferInputStream.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@
2020
import java.io.InputStream;
2121
import java.util.Objects;
2222

23+
import org.apache.commons.io.IOUtils;
24+
2325

2426
/**
2527
* Implementation of a buffered input stream, which is internally based on the
@@ -52,12 +54,12 @@ public CircularBufferInputStream(final InputStream inputStream, final int buffer
5254

5355
/**
5456
* Creates a new instance, which filters the given input stream, and
55-
* uses a reasonable default buffer size (8192).
57+
* uses a reasonable default buffer size ({@link IOUtils#DEFAULT_BUFFER_SIZE}).
5658
*
5759
* @param inputStream The input stream, which is being buffered.
5860
*/
5961
public CircularBufferInputStream(final InputStream inputStream) {
60-
this(inputStream, 8192);
62+
this(inputStream, IOUtils.DEFAULT_BUFFER_SIZE);
6163
}
6264

6365
/**

src/main/java/org/apache/commons/io/input/buffer/CircularByteBuffer.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818

1919
import java.util.Objects;
2020

21+
import org.apache.commons.io.IOUtils;
22+
2123
/**
2224
* A buffer, which doesn't need reallocation of byte arrays, because it
2325
* reuses a single byte array. This works particularly well, if reading
@@ -42,10 +44,10 @@ public CircularByteBuffer(final int pSize) {
4244
}
4345

4446
/**
45-
* Creates a new instance with a reasonable default buffer size (8192).
47+
* Creates a new instance with a reasonable default buffer size ({@link IOUtils#DEFAULT_BUFFER_SIZE}).
4648
*/
4749
public CircularByteBuffer() {
48-
this(8192);
50+
this(IOUtils.DEFAULT_BUFFER_SIZE);
4951
}
5052

5153
/**

src/main/java/org/apache/commons/io/output/XmlStreamWriter.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import java.util.regex.Matcher;
2929
import java.util.regex.Pattern;
3030

31+
import org.apache.commons.io.IOUtils;
3132
import org.apache.commons.io.input.XmlStreamReader;
3233

3334
/**
@@ -38,7 +39,7 @@
3839
* @since 2.0
3940
*/
4041
public class XmlStreamWriter extends Writer {
41-
private static final int BUFFER_SIZE = 4096;
42+
private static final int BUFFER_SIZE = IOUtils.DEFAULT_BUFFER_SIZE;
4243

4344
private final OutputStream out;
4445

src/test/java/org/apache/commons/io/input/ObservableInputStreamTest.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import java.io.ByteArrayInputStream;
2424
import java.io.IOException;
2525

26+
import org.apache.commons.io.IOUtils;
2627
import org.apache.commons.io.input.ObservableInputStream.Observer;
2728
import org.junit.jupiter.api.Test;
2829

@@ -72,7 +73,7 @@ void data(final byte[] pBuffer, final int pOffset, final int pLength) throws IOE
7273
*/
7374
@Test
7475
public void testDataByteCalled() throws Exception {
75-
final byte[] buffer = MessageDigestCalculatingInputStreamTest.generateRandomByteStream(4096);
76+
final byte[] buffer = MessageDigestCalculatingInputStreamTest.generateRandomByteStream(IOUtils.DEFAULT_BUFFER_SIZE);
7677
final ObservableInputStream ois = new ObservableInputStream(new ByteArrayInputStream(buffer));
7778
final LastByteKeepingObserver lko = new LastByteKeepingObserver();
7879
assertEquals(-1, lko.lastByteSeen);
@@ -101,7 +102,7 @@ public void testDataByteCalled() throws Exception {
101102
*/
102103
@Test
103104
public void testDataBytesCalled() throws Exception {
104-
final byte[] buffer = MessageDigestCalculatingInputStreamTest.generateRandomByteStream(4096);
105+
final byte[] buffer = MessageDigestCalculatingInputStreamTest.generateRandomByteStream(IOUtils.DEFAULT_BUFFER_SIZE);
105106
final ByteArrayInputStream bais = new ByteArrayInputStream(buffer);
106107
final ObservableInputStream ois = new ObservableInputStream(bais);
107108
final LastBytesKeepingObserver lko = new LastBytesKeepingObserver();

0 commit comments

Comments
 (0)