scottyg created IO-697:
--------------------------
Summary: IOUtils.toByteArray size validation does not match
documenation.
Key: IO-697
URL: https://issues.apache.org/jira/browse/IO-697
Project: Commons IO
Issue Type: Bug
Reporter: scottyg
According to the javadoc, "throws IOException ... or InputStream size differ
from parameter size.
I read that as the passed in parameter size must exactly match the length of
data represented by the InputStream. However, the current implementation will:
* Throw an exception if size parameter is larger than the InputStream
* Work as expected if size parameter matches size of InputStream
* **Return a byte array only containing up-to size parameter when InputStream
is larger than size parameter. No exception is thrown**.
What is the actual intention of the method? What the javadoc says, or what the
implementation is currently doing?
{code:java}
/**
* Gets the contents of an <code>InputStream</code> as a <code>byte[]</code>.
* Use this method instead of <code>toByteArray(InputStream)</code>
* when <code>InputStream</code> size is known
*
* @param input the <code>InputStream</code> to read from
* @param size the size of <code>InputStream</code>
* @return the requested byte array
* @throws IOException if an I/O error occurs or
<code>InputStream</code> size differ from parameter
* size
* @throws IllegalArgumentException if size is less than zero
* @since 2.1
*/
public static byte[] toByteArray(final InputStream input, final int size)
throws IOException {code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)