On Mon, 29 Sep 2025 21:36:35 GMT, Pavel Rappo <[email protected]> wrote:

>> We have [recently discussed][] a possibility of adding the `Duration.MIN` 
>> and `Duration.MAX` constants. Can we now start implementation? If and when 
>> we are in agreement on this PR, I will file a CSR.
>> 
>> I drafted a minimal specification and added some tests. I tried to phrase 
>> the spec for `Duration.MIN` in a way that makes it clear that `Duration.MIN` 
>> is the most negative value and not the least positive.
>> 
>> [recently discussed]: 
>> https://mail.openjdk.org/pipermail/core-libs-dev/2025-September/151098.html
>
> Pavel Rappo has updated the pull request incrementally with two additional 
> commits since the last revision:
> 
>  - Update copyright years
>    
>    Note: any commit hashes below might be outdated due to subsequent
>    history rewriting (e.g. git rebase).
>    
>     + update src/java.base/share/classes/java/time/temporal/ChronoUnit.java 
> due to 9a54ba1d353
>     + update test/jdk/java/time/tck/java/time/TCKDuration.java due to 
> 9a54ba1d353
>  - Provide @apiNote as suggested

src/java.base/share/classes/java/time/Duration.java line 151:

> 149:      * instant}, as doing so will cause overflow. Extreme care should be 
> taken
> 150:      * when performing {@code Duration} arithmetic on them, such as 
> adding
> 151:      * them to or subtracting them from another duration.

https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/time/Instant.html#MIN

Suggestion:

     * The minimum supported Duration, which is {@code Long.MIN_VALUE} seconds.
     *
     * @apiNote This constant represents the smallest possible instance of 
{@code Duration}.
     * Since Durations are directed, the smallest possible duration is negative.
     * <p>
     * The constant is intended to be used as a sentinel value, such as in
     * comparisons and tests. Care should be taken when performing arithmetic
     * on {@code MIN} as there is a high risk that {@code ArithmeticException}
     * will be thrown.


Similar for MAX. But it can repeat the class header comment about being longer 
than the age of the universe,

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

PR Review Comment: https://git.openjdk.org/jdk/pull/27534#discussion_r2392531493

Reply via email to