RFR: 8308310: HttpClient: Avoid logging or locking from within synchronized blocks [v2]
Daniel Fuchs
dfuchs at openjdk.org
Thu May 18 13:55:50 UTC 2023
On Thu, 18 May 2023 12:32:40 GMT, Andrey Turbanov <aturbanov at openjdk.org> wrote:
>> Daniel Fuchs has updated the pull request incrementally with three additional commits since the last revision:
>>
>> - Update src/java.net.http/share/classes/jdk/internal/net/http/Http1Response.java
>>
>> Co-authored-by: Andrey Turbanov <turbanoff at gmail.com>
>> - Update src/java.net.http/share/classes/jdk/internal/net/http/ConnectionPool.java
>>
>> Co-authored-by: Andrey Turbanov <turbanoff at gmail.com>
>> - Update test/jdk/java/net/httpclient/AuthFilterCacheTest.java
>>
>> Co-authored-by: Andrey Turbanov <turbanoff at gmail.com>
>
> src/java.net.http/share/classes/jdk/internal/net/http/Http1Exchange.java line 72:
>
>> 70: /** Records a possible cancellation raised before any operation
>> 71: * has been initiated, or an error received while sending the request. */
>> 72: private AtomicReference<Throwable> failedRef = new AtomicReference<>();
>
> Seems it's only modified under lock. Can we use `volatile` instead?
I prefer to keep AtomicReference - it's easier to reason about.
Maybe at some time I'll do a pass to use VarHandles in various places but now is not the time.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/14038#discussion_r1197858774
More information about the net-dev
mailing list