On Mon, 19 Feb 2024 20:55:06 GMT, Eirik Bjørsnøs <eir...@openjdk.org> wrote:

>> Please review this PR which proposes that we officially deprecate the 
>> following four methods in the `java.util.zip` package:
>> 
>> * `Inflater.getTotalIn()`
>> * `Inflater.getTotalOut()`
>> * `Deflater.getTotalIn()`
>> * `Deflater.getTotalOut()`
>> 
>> Since these legacy methods return `int`, they cannot safely return the 
>> number of bytes processed without the risk of losing information  about the 
>> magnitude or even sign of the returned value.
>> 
>> The corresponding methods `getBytesRead()` and `getBytesWritten()` methods 
>> introduced in Java 5 return `long`, and should be used instead when 
>> obtaining this information. 
>> 
>> Unrelated to the deprecation itself, the documentation currently does not 
>> specify what these methods are expected to return when the number of 
>> processed bytes is higher than `Integer.MAX_VALUE`. This PR aims to clarify 
>> this in the API specification.
>> 
>> Initally, this PR handles only `Inflater.getTotalIn()`. The other three 
>> methods will be updated once the wordsmithing for this method stabilizes.
>
> Eirik Bjørsnøs has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   Fix {@link #getBytesRead}

src/java.base/share/classes/java/util/zip/Inflater.java line 644:

> 642:      * to <code>int</code>.
> 643:      *
> 644:      * @deprecated This method cannot safely return a result without a 
> potential

Perhaps word this as:
>
>This method cannot return the right value when the number of compressed bytes 
>is greater than {@link Integer.MAX_VALUE}. It is recommended that the {@link 
>#getBytesRead()} method be used instead.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/17919#discussion_r1495339856

Reply via email to