On Thu, 3 Jul 2025 10:49:21 GMT, Volkan Yazici <vyaz...@openjdk.org> 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