RFR: 8308310: HttpClient: Avoid logging or locking from within synchronized blocks [v8]

Jaikiran Pai jpai at openjdk.org
Wed May 24 11:14:02 UTC 2023


On Wed, 24 May 2023 10:59:02 GMT, Daniel Fuchs <dfuchs at openjdk.org> wrote:

>> src/java.net.http/share/classes/jdk/internal/net/http/ConnectionPool.java line 476:
>> 
>>> 474:         }
>>> 475: 
>>> 476:         // should only be called while holding the ConnectionPool stateLock.
>> 
>> Hello Daniel, all these methods which say a lock needs to be held when they are called, should we add a `assert stateLock.isHeldByCurrentThread();` to make it verifiable? I understand we didn't have a similar assert when the comment said the method needs to be called while holding the monitor, but since we are changing this part now, perhaps we can add those asserts?
>
> The `stateLock` variable is not available from within the method:
> 
> Non-static field 'stateLock' cannot be referenced from a static context

Thank you, that wasn't clearly noticable in the diff.

>> src/java.net.http/share/classes/jdk/internal/net/http/Http1Response.java line 150:
>> 
>>> 148: 
>>> 149:         public void tryRelease() {
>>> 150:             if (STATE.compareAndSet(this, (byte)0x01, (byte)0x03)) {
>> 
>> Nit - a space is missing between the cast and the value for the second and third parameters.
>
> OK - will do - though I usually don't put a space there.

It's fine with me in the current form if this wasn't an oversight.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/14038#discussion_r1203912652
PR Review Comment: https://git.openjdk.org/jdk/pull/14038#discussion_r1203918122


More information about the net-dev mailing list