RFR: 8368528: HttpClient.Builder.connectTimeout should accept arbitrarily large values
Volkan Yazici
vyazici at openjdk.org
Fri Oct 24 17:42:01 UTC 2025
On Fri, 24 Oct 2025 12:10:38 GMT, Volkan Yazici <vyazici at openjdk.org> wrote:
> Introduce necessary fixes to address exceptions thrown when excessive `Duration`s are provided to `Duration`-accepting `HttpClient` public APIs.
> We might soon have saturating addition functionality in `java.time.Instant`; see: #27549
Great tip! 💯 I will hold this PR until #27549 gets merged, and use `Instant::plusSaturated` in `Deadline::plus*` and `::minus` methods.
> I note that `jdk.internal.net.http.common.Deadline` also wants to have saturating subtraction, and I wonder if that's really needed. It seems that the two usages of the `minus` method in the codebase can be reimplemented alternatively. In which case `Deadline` could delete `minus`.
I also have my reservations regarding the rich, yet seldom used API surface of `Deadline`. But revamping it is out of the scope of this work.
> Furthermore, if there's no need for saturating subtraction, do we need the `Deadline` class? What does it provide, that `Instant` does not?
In short, `Instant` is not necessarily generated using a monotonically-increasing `InstantSource`. `Deadline` is introduced to avoid that ambiguity and guaranteed to be always monotonically-increasing. See [this conversation for details](https://github.com/openjdk/jdk/pull/14450#pullrequestreview-1479500686).
-------------
PR Comment: https://git.openjdk.org/jdk/pull/27973#issuecomment-3444222646
More information about the net-dev
mailing list