RFR: 8368856: Add methods for saturating Duration arithmetic to Instant [v8]
Pavel Rappo
prappo at openjdk.org
Mon Oct 13 21:12:40 UTC 2025
> 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 four additional commits since the last revision:
- Simplify impl
- Clarify spec
- Revert "Add Instant.minusSaturating(Duration)"
This reverts commit 35537856f1759c7abbe2b5c5bbb267a90612f729.
- Add test for null
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/27549/files
- new: https://git.openjdk.org/jdk/pull/27549/files/e7207a08..3bc1e0e2
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=27549&range=07
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=27549&range=06-07
Stats: 117 lines in 2 files changed: 19 ins; 88 del; 10 mod
Patch: https://git.openjdk.org/jdk/pull/27549.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/27549/head:pull/27549
PR: https://git.openjdk.org/jdk/pull/27549
More information about the core-libs-dev
mailing list