RFR: 8368856: Add methods for saturating Duration arithmetic to Instant [v7]
Stephen Colebourne
scolebourne at openjdk.org
Tue Oct 7 20:40:34 UTC 2025
On Wed, 1 Oct 2025 20:17:00 GMT, Pavel Rappo <prappo at openjdk.org> wrote:
>> We recently [discussed] the possibility of introducing saturating arithmetic for deadline computation. Consider this PR as a starting point. Once we agree on the implementation, I'll file a CSR.
>>
>> I created a method in `Instant` to add `Duration`. One could argue that the proper way would be to go all the way and create a method in `Temporal` to add `TemporalAmount`. Or maybe even expand the functionality, and create an additional method in `Temporal` to subtract `TemporalAmount`.
>>
>> My current thinking is that if we were to do that, there would be a lot of expensive, unused code. Saturating logic seems to be only useful for `Instant` and `Duration`.
>>
>> Even if we decide to extend `Temporal` to add/subtract `TemporalAmount`, it could always be done later. From the perspective of `Instant`, `plus(TemporalAmount)` will be just an overload of `plus(Duration)`.
>>
>> [discussed]: https://mail.openjdk.org/pipermail/core-libs-dev/2025-September/151098.html
>
> Pavel Rappo has updated the pull request incrementally with one additional commit since the last revision:
>
> Fix copy-paste typos
Have any users been asking for these methods, or is it just a case of we think they might be useful?
It is definitely a bit weird that the saturating methods take a `Duration`, while the non-saturating ones take `TemporalAmount`, but I don't think there is a lot that can be done about that.
-------------
PR Comment: https://git.openjdk.org/jdk/pull/27549#issuecomment-3378557830
More information about the core-libs-dev
mailing list