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/05/24 18:26:13 UTC
[commons-io] branch master updated: Add comment and use
try-with-resources.
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 139cc89 Add comment and use try-with-resources.
139cc89 is described below
commit 139cc8969ff21e9842ea436aa556027823cc73e1
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Sun May 24 14:26:09 2020 -0400
Add comment and use try-with-resources.
---
.../apache/commons/io/output/NullPrintStream.java | 1 +
.../UnsynchronizedByteArrayOutputStream.java | 57 ++++++++--------------
2 files changed, 21 insertions(+), 37 deletions(-)
diff --git a/src/main/java/org/apache/commons/io/output/NullPrintStream.java b/src/main/java/org/apache/commons/io/output/NullPrintStream.java
index 8942a5b..f5ddcf3 100644
--- a/src/main/java/org/apache/commons/io/output/NullPrintStream.java
+++ b/src/main/java/org/apache/commons/io/output/NullPrintStream.java
@@ -38,6 +38,7 @@ public class NullPrintStream extends PrintStream {
* Constructs an instance.
*/
public NullPrintStream() {
+ // Relies on the default charset which is OK since we are not writing.
super(NullOutputStream.NULL_OUTPUT_STREAM);
}
diff --git a/src/main/java/org/apache/commons/io/output/UnsynchronizedByteArrayOutputStream.java b/src/main/java/org/apache/commons/io/output/UnsynchronizedByteArrayOutputStream.java
index 7e135ee..77b167e 100644
--- a/src/main/java/org/apache/commons/io/output/UnsynchronizedByteArrayOutputStream.java
+++ b/src/main/java/org/apache/commons/io/output/UnsynchronizedByteArrayOutputStream.java
@@ -23,8 +23,7 @@ import java.io.InputStream;
import java.io.OutputStream;
/**
- * Implements a version of {@link AbstractByteArrayOutputStream}
- * <b>without</b> any concurrent thread safety.
+ * Implements a version of {@link AbstractByteArrayOutputStream} <b>without</b> any concurrent thread safety.
*
* @since 2.7
*/
@@ -40,28 +39,22 @@ public final class UnsynchronizedByteArrayOutputStream extends AbstractByteArray
}
/**
- * Creates a new byte array output stream, with a buffer capacity of
- * the specified size, in bytes.
+ * Creates a new byte array output stream, with a buffer capacity of the specified size, in bytes.
*
- * @param size the initial size
+ * @param size the initial size
* @throws IllegalArgumentException if size is negative
*/
public UnsynchronizedByteArrayOutputStream(final int size) {
if (size < 0) {
- throw new IllegalArgumentException(
- "Negative initial size: " + size);
+ throw new IllegalArgumentException("Negative initial size: " + size);
}
needNewBuffer(size);
}
@Override
public void write(final byte[] b, final int off, final int len) {
- if ((off < 0)
- || (off > b.length)
- || (len < 0)
- || ((off + len) > b.length)
- || ((off + len) < 0)) {
- throw new IndexOutOfBoundsException();
+ if ((off < 0) || (off > b.length) || (len < 0) || ((off + len) > b.length) || ((off + len) < 0)) {
+ throw new IndexOutOfBoundsException(String.format("offset=%,d, length=%,d", off, len));
} else if (len == 0) {
return;
}
@@ -97,60 +90,50 @@ public final class UnsynchronizedByteArrayOutputStream extends AbstractByteArray
}
/**
- * Fetches entire contents of an <code>InputStream</code> and represent
- * same data as result InputStream.
+ * Fetches entire contents of an <code>InputStream</code> and represent same data as result InputStream.
* <p>
* This method is useful where,
* </p>
* <ul>
* <li>Source InputStream is slow.</li>
- * <li>It has network resources associated, so we cannot keep it open for
- * long time.</li>
+ * <li>It has network resources associated, so we cannot keep it open for long time.</li>
* <li>It has network timeout associated.</li>
* </ul>
- * It can be used in favor of {@link #toByteArray()}, since it
- * avoids unnecessary allocation and copy of byte[].<br>
- * This method buffers the input internally, so there is no need to use a
- * <code>BufferedInputStream</code>.
+ * It can be used in favor of {@link #toByteArray()}, since it avoids unnecessary allocation and copy of byte[].<br>
+ * This method buffers the input internally, so there is no need to use a <code>BufferedInputStream</code>.
*
* @param input Stream to be fully buffered.
* @return A fully buffered stream.
* @throws IOException if an I/O error occurs
*/
- public static InputStream toBufferedInputStream(final InputStream input)
- throws IOException {
+ public static InputStream toBufferedInputStream(final InputStream input) throws IOException {
return toBufferedInputStream(input, DEFAULT_SIZE);
}
/**
- * Fetches entire contents of an <code>InputStream</code> and represent
- * same data as result InputStream.
+ * Fetches entire contents of an <code>InputStream</code> and represent same data as result InputStream.
* <p>
* This method is useful where,
* </p>
* <ul>
* <li>Source InputStream is slow.</li>
- * <li>It has network resources associated, so we cannot keep it open for
- * long time.</li>
+ * <li>It has network resources associated, so we cannot keep it open for long time.</li>
* <li>It has network timeout associated.</li>
* </ul>
- * It can be used in favor of {@link #toByteArray()}, since it
- * avoids unnecessary allocation and copy of byte[].<br>
- * This method buffers the input internally, so there is no need to use a
- * <code>BufferedInputStream</code>.
+ * It can be used in favor of {@link #toByteArray()}, since it avoids unnecessary allocation and copy of byte[].<br>
+ * This method buffers the input internally, so there is no need to use a <code>BufferedInputStream</code>.
*
* @param input Stream to be fully buffered.
* @param size the initial buffer size
* @return A fully buffered stream.
* @throws IOException if an I/O error occurs
*/
- public static InputStream toBufferedInputStream(final InputStream input, final int size)
- throws IOException {
+ public static InputStream toBufferedInputStream(final InputStream input, final int size) throws IOException {
// It does not matter if a ByteArrayOutputStream is not closed as close() is a no-op
- @SuppressWarnings("resource")
- final UnsynchronizedByteArrayOutputStream output = new UnsynchronizedByteArrayOutputStream(size);
- output.write(input);
- return output.toInputStream();
+ try (final UnsynchronizedByteArrayOutputStream output = new UnsynchronizedByteArrayOutputStream(size)) {
+ output.write(input);
+ return output.toInputStream();
+ }
}
@Override