[9] RFR: 8164159: java/nio/file/WatchService/UpdateInterference.java test leaves daemon threads

Artem Smotrakov artem.smotrakov at oracle.com
Thu Aug 18 21:56:09 UTC 2016


Thank you for review Alan.

Please see inline.


On 08/18/2016 12:42 PM, Alan Bateman wrote:
>
>
> On 18/08/2016 18:19, Artem Smotrakov wrote:
>>
>>>
>>> Bug: https://bugs.openjdk.java.net/browse/JDK-8164159
>>> Webrev: http://cr.openjdk.java.net/~asmotrak/8164159/webrev.00/
>
> The comment in the finally block is confusing. It says that threads 
> will stop before the WatchService is closed but it's the other way 
> around - the WatchService::close method will be invoked before the 
> finally block executes. This means that ClosedWatchServiceException 
> will likely br thrown and the stack trace recorded in the test output.
There are two try-finally blocks. First one creates a WatchService, and 
contains a nested try-finally block. The "stop" flag is set to true in 
this nested try-finally block, so that the test waits for threads to 
finish before the watch service is closed.

I am not a fan of many nested "try" blocks, anonymous classes, etc, 
because they don't usually make code more readable. But on the other 
hand, I didn't want to re-write the test much.
>
> A minor suggestion, can Thread one and two be renamed to t1 and t2 to 
> make it a bit more readable?
Sure. I am wondering if we could use some other names, for example, 
mickeyMouseThread and winnieThePoohThread. Anyway, t1 and t2 are also fine.
> Also no need to initialize to volatile stop to false as that is its 
> initial value.
Of course.

Could you please take a look at updated webrev?

http://cr.openjdk.java.net/~asmotrak/8164159/webrev.01/

Artem
>
> -Alan.



More information about the nio-dev mailing list