Looks good, but cant-stop-nitpicking Martin feels compelled to point out
the typo here:

  71     // his instance will be used to perform the GC.run_finalization test



On Tue, Oct 13, 2015 at 11:47 PM, Jaroslav Bachorik <
jaroslav.bacho...@oracle.com> wrote:

> On 13.10.2015 20:12, Martin Buchholz wrote:
>
>> blockFinalizerThread looks buggy to me.
>>
>>   103     private static void blockFinalizerThread() throws
>> InterruptedException {
>>   104         System.out.println("trying to block the finalizer thread");
>>   105         o1 = new MyObject();
>>   106         o1 = null;
>>   107         System.gc();
>>   108         System.runFinalization();
>>   109         finRunLatch.await();
>>   110     }
>> Why are you calling System.runFinalization() ?  You are trying to block
>> the primary finalizer thread; you definitely don't want the object to be
>> handled by the secondary finalizer thread.
>>
>
> Indeed. Even though this seems unlikely (didn't hit the problem in 500
> repetitions) it will be better not to call System.runFinalization() and
> just let System.gc() do its job finalizing the collected instance.
>
>
>> ---
>>
>>    51             } else {
>>    52                 System.out.println("finalizing the test instance");
>> I would check :
>>
>> else if (Thread.currentThread().getName().equals("Secondary finalizer")) {
>>    ....
>> else fail(unexpected finalizer thread name)
>>
>
> If this ever happens it would mean that the finalizer logic has been
> changed. Adding this check will make the test fail in such case and force
> re-examination of the test logic. Sounds fair.
>
> http://cr.openjdk.java.net/~jbachorik/8135188/webrev.04
>
> Thanks!
>
> -JB-
>
>
>>
>>
>

Reply via email to