On Mon, 7 Dec 2020 11:39:30 GMT, Conor Cleary <[email protected]> wrote:
>> The KeepAliveStreamCleaner in sun.net.ww.http package had been previously
>> seen to fail with an IllegalMonitorStateException. This failure was caused
>> by the use of `wait()` in a non synchronized block. This failure was
>> mitigated through use of `await()` instead as is shown below (code can be
>> viewed on L119 in
>> src/java.base/share/classes/sun/net/www/http/KeepAliveStreamCleaner.java).
>>
>> ...
>> long timeout = TIMEOUT;
>> while ((kace = poll()) == null) {
>> waiter.await(timeout, TimeUnit.MILLISECONDS);
>> ...
>> While the code throwing the exception was fixed, a regression test was not
>> made. So this patch adds a simple white-box test which calls the
>> KeepAliveStreamCleaner's run method. `waiter.wait()` should always fail if
>> not used in a synchronized block or method, so the test verifies that it is
>> not used.
>
> Conor Cleary has updated the pull request incrementally with two additional
> commits since the last revision:
>
> - 8255583: Added original bug id to bug tag
> - 8255583: Add bug & summary tags to KeepAliveStreamCleanerTestDriver
test/jdk/sun/net/www/http/KeepAliveStreamCleaner/KeepAliveStreamCleanerTestDriver.java
line 27:
> 25: * @test
> 26: * @bug 8255124 8255583
> 27: * @summary Tests that KeepAliveStreamCleaner run does not throw an
> IllegalMonitorState Exception.
Thanks for the summary!
`@bug` should only list `8255124` ; We typically don't list issues that affect
the tests only. We only list those that affect the JDK source code and which
can be verified by running the test.
-------------
PR: https://git.openjdk.java.net/jdk/pull/1659