[ https://issues.apache.org/jira/browse/IO-686?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Sebb reopened IO-686: --------------------- The problem here is that 2.8.0 behaves differently from 2.7 and previous versions. 2.8.0 no longer throws NPE, but this change does not appear to be documented. I don't think fixing the Javadoc is necessarily the correct solution. > IOUtils.toByteArray(InputStream) Javadoc does not match code > ------------------------------------------------------------ > > Key: IO-686 > URL: https://issues.apache.org/jira/browse/IO-686 > Project: Commons IO > Issue Type: Bug > Components: Utilities > Affects Versions: 2.8.0 > Reporter: Alan Moffat > Priority: Critical > Fix For: 2.9.0 > > > According to the code in the v2.8.0 release, passing null to the method > should throw an exception, however it is producing an empty byte array > instead. > {code:java} > /** > * Gets the contents of an <code>InputStream</code> as a <code>byte[]</code>. > * <p> > * This method buffers the input internally, so there is no need to use a > * <code>BufferedInputStream</code>. > * </p> > * > * @param input the <code>InputStream</code> to read from > * @return the requested byte array > * @throws NullPointerException if the input is null > * @throws IOException if an I/O error occurs > */ > public static byte[] toByteArray(final InputStream input) throws IOException { > try (final ByteArrayOutputStream output = new ByteArrayOutputStream()) { > copy(input, output); > return output.toByteArray(); > } > } {code} > This can be recreated by the following: > {code:java} > @Test > public void shouldThrowNullPointerException() { > assertThrows(NullPointerException.class, () -> > IOUtils.toByteArray((InputStream) null)) > } {code} > On v2.7 the test passes, on v2.8.0 it fails. -- This message was sent by Atlassian Jira (v8.3.4#803005)