RFR [6853696] (ref) ReferenceQueue.remove(timeout) may return null even if timeout has not expired
Mandy Chung
mandy.chung at oracle.com
Tue Feb 25 17:53:57 UTC 2014
On 2/25/14 6:32 AM, Ivan Gerasimov wrote:
>> line 76: why do you want to catch InterruptedException? If
>> interrupted, should the test fail?
> ReferenceQueue#remove() can throw InterruptedException, so I had to
> handle it.
> In the new webrev I set the initial value of actual to TIMEOUT, so if
> the thread is interrupted the test will pass.
>
Catching the InterruptedException would hide any unexpected issue as the
test doesn't really expect to be interrupted. For example if the test is
interrupted (kill -9), we should let the test to fail which is fine. I
suggest not to catch it.
line 61: I think the test should be:
if (thread.reference != null || thread.actual < TIMEOUT)
you may want to update the exception. You could simply throw
RuntimeException (just a minor point).
> Please take a look at the updated webrev:
> http://cr.openjdk.java.net/~igerasim/6853696/1/webrev/
Looks okay. I have a slight preference to keep the simple division to
convert to millis rather than loading the enum TimeUnit class for this
purpose.
Mandy
More information about the core-libs-dev
mailing list