RFR: JDK-8262435: Clarify the behavior of a few inherited ZipInputStream methods
Alan Bateman
alanb at openjdk.org
Fri Nov 11 12:33:05 UTC 2022
On Fri, 4 Nov 2022 18:13:23 GMT, Lance Andersen <lancea at openjdk.org> wrote:
> Please review the following PR which updates several of the ZipInputStream methods whose javadoc is inherited to clarify the methods are acting on the current ZIP Entry.
>
> There are no changes in behavior. The main description for the method's javadoc that has been copied has been clarified and the remaining doc is the same.
src/java.base/share/classes/java/util/zip/ZipInputStream.java line 222:
> 220: * <p> The behavior for the case where the input stream is <i>asynchronously
> 221: * closed</i>, or the thread interrupted during the read, is highly input
> 222: * stream specific, and therefore not specified.
I'm not 100% sure about copying this paragraph from InputStream.readAllBytes because ZipInputStream is a specific InputStream implementation. I would be tempted to just drop it.
src/java.base/share/classes/java/util/zip/ZipInputStream.java line 263:
> 261: * <p> The behavior for the case where the input stream is <i>asynchronously
> 262: * closed</i>, or the thread interrupted during the read, is highly input
> 263: * stream specific, and therefore not specified.
This is another case where we might drop a paragraph because it's there to allow for a wide range of input stream implementations.
src/java.base/share/classes/java/util/zip/ZipInputStream.java line 273:
> 271: * @implNote
> 272: * The number of bytes allocated to read data from this stream and return
> 273: * the result is bounded by {@code 2*(long)len}, inclusive.
Maybe the implNote should just say that it calls super.readNBytes ?
src/java.base/share/classes/java/util/zip/ZipInputStream.java line 309:
> 307: * <p> The behavior for the case where the input stream is <i>asynchronously
> 308: * closed</i>, or the thread interrupted during the read, is highly input
> 309: * stream specific, and therefore not specified.
Another paragraph that probably shouldn't be copied from InputStream.
src/java.base/share/classes/java/util/zip/ZipInputStream.java line 355:
> 353: * invoked to read a single byte, and if it returns {@code -1}, then an
> 354: * {@code EOFException} is thrown. Any exception thrown by {@code skip()}
> 355: * or {@code read()} will be propagated.
implSpec is usually for methods with a default or overrideable implementation. Yes, it's possible to extend ZipInputStream and override the skipNBytes method but it feels a bit too deep in the hierarchy to have this in the javadoc.
-------------
PR: https://git.openjdk.org/jdk/pull/10995
More information about the core-libs-dev
mailing list