On Thu, 3 Jul 2025 10:49:21 GMT, Volkan Yazici <[email protected]> wrote:
>> The PlainHttpConnection::connectAsync method implements a retry logic that
>> will call connect() again if connect() throws the first time. This will not
>> work, as the channel is closed when connect() throws. That logic should be
>> removed. Reconnection should only be attempted at a higher level
>> (MultiExchange).
>
> src/java.net.http/share/classes/jdk/internal/net/http/PlainHttpConnection.java
> line 1:
>
>> 1: /*
>
> Shouldn't we remove the following too?
>
> 1. The `unsuccessfulAttempts` field
> 2. `jdk.internal.net.http.common.TimeSource` import
Good point.
> src/java.net.http/share/classes/jdk/internal/net/http/PlainHttpConnection.java
> line 232:
>
>> 230: }
>> 231: return cf.thenApply((state)->{
>> 232: if (debug.on()) debug.log("%s: %s", label(), state);
>
> AFAICT, this is the only place where a `ConnectState` is _read_.
> Alternatively, we can remove the `ConnectState` enum and add `debug.log()`
> statements where `ConnectState` were assigned.
I know. I hesitated and eventually decided to keep it.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/26087#discussion_r2182716896
PR Review Comment: https://git.openjdk.org/jdk/pull/26087#discussion_r2182718272