> On Jul 19, 2017, at 1:55 AM, Adam Petcher <adam.petc...@oracle.com> wrote: > > Some additional investigation revealed that IOUtils.readFully() is only used > by DER, JKS, and Kerberos. None of these need the "read to the end of the > buffer" feature. This behavior of readFully() is confusing, so it is probably > best to remove it.
Just back from vacation. Yes, you are right. I filed https://bugs.openjdk.java.net/browse/JDK-8182151 some time ago. IIRC, with the proposed InputStream::readNBytes(int length) and existing InputStream::readAllBytes(), there will be no need to call IOUtils.readFully() anymore. Thanks Max > > Webrev: http://cr.openjdk.java.net/~apetcher/8183591/webrev.01/ > > > On 7/12/2017 2:38 PM, Adam Petcher wrote: >> This is a bug fix for a corner case in which a DER value has length equal to >> Integer.MAX_VALUE. The code uses IOUtils.readFully() to read the value, >> which interprets length=Integer.MAX_VALUE to mean "read to the end." The >> result is that no exception will be thrown when fewer then Integer.MAX_VALUE >> bytes are read from the stream. The fix adds a check after the readFully() >> to ensure that the expected number of bytes were read. >> >> Webrev: http://cr.openjdk.java.net/~apetcher/8183591/webrev.00/ >> JBS: https://bugs.openjdk.java.net/browse/JDK-8183591 >> >