RFR: 8255583: Investigate creating a test to trigger the condition in KeepAliveStreamCleaner [v3]

Daniel Fuchs dfuchs at openjdk.java.net
Mon Dec 7 17:28:13 UTC 2020


On Mon, 7 Dec 2020 17:11:28 GMT, Conor Cleary <ccleary at openjdk.org> 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 one additional commit since the last revision:
> 
>   8255583: Removed unnecessary bug id

Marked as reviewed by dfuchs (Reviewer).

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

PR: https://git.openjdk.java.net/jdk/pull/1659


More information about the net-dev mailing list