I just created https://bugs.openjdk.java.net/browse/JDK-8262435 to track
this.
-Jaikiran
On 25/02/21 9:05 pm, Jaikiran Pai wrote:
Thank you Lance and Alan. I do have access to JBS, I'll file one
tomorrow with the details.
-Jaikiran
On 25/02/21 9:04 pm, Lance Andersen wrote:
Hi Jaikiran,
Yes I believe this makes sense.
It would also require a CSR.
I can login a bug if you do not have access to do so.
Best
Lance
On Feb 24, 2021, at 10:56 PM, Jaikiran Pai <jai.forums2...@gmail.com
<mailto:jai.forums2...@gmail.com>> wrote:
The javadoc of InputStream#readAllBytes() states[1] that it reads
all the remaining bytes of the stream. The
java.util.zip.ZipInputStream doesn't override this method and thus
"inherits" this javadoc. The implementation of
InputStream#readAllBytes() ultimately ends up calling
ZipInputStream#read()[2], so the implementation correctly reads only
till the end of the current ZipEntry and not the entire
ZipInputStream. However, because the javadoc gets inherited, reading
any code like the following doesn't make it clear that it's only
reading till the end of the current entry:
zis = ... // ZipInputStream
while ((e = zis.getNextEntry()) != null) {
String name = e.getName();
zis.readAllBytes(); // gives an impression that all bytes of the
stream are read
...
}
Should the ZipInputStream override the readAllBytes(), just so as to
add a very specific javadoc to this method which explains that it
reads only till the end of current entry and other related
semantics? Perhaps the same should be done for
ZipInputStream#readNBytes(...)?
[1]
https://docs.oracle.com/en/java/javase/15/docs/api/java.base/java/io/InputStream.html#readAllBytes()
<https://docs.oracle.com/en/java/javase/15/docs/api/java.base/java/io/InputStream.html#readAllBytes()>
[2]
https://docs.oracle.com/en/java/javase/15/docs/api/java.base/java/util/zip/ZipInputStream.html#read(byte%5B%5D,int,int)
<https://docs.oracle.com/en/java/javase/15/docs/api/java.base/java/util/zip/ZipInputStream.html#read(byte%5B%5D,int,int)>
-Jaikiran
Lance Andersen| Principal Member of Technical Staff | +1.781.442.2037
Oracle Java Engineering
1 Network Drive
Burlington, MA 01803
lance.ander...@oracle.com <mailto:lance.ander...@oracle.com>