Patch review request - Test bug 7123972 test/java/lang/annotation/loaderLeak/ fails intermittently

David Holmes david.holmes at
Thu Jun 21 12:16:59 UTC 2012

Hi Eric,

On 21/06/2012 8:57 PM, Eric Wang wrote:
> Hi David,
> Thanks for your review, I have updated the code by following your
> suggestion. please see the attachment.
> I'm not sure whether there's a better way to guarantee object finalized
> by GC definitely within the given time. The proposed fix may work in
> most cases but may still throw InterruptException if execution is
> timeout (2 minutes of JTreg by default).

There is no way to guarantee finalization in a specific timeframe, but 
if a simple test hasn't executed finalizers in 2 minutes then that in 
itself indicates a problem.

Can you post a full webrev for this patch? I don't like seeing it out of 
context and am wondering exactly what we are trying to GC here.


> Regards,
> Eric
> On 2012/6/21 14:32, David Holmes wrote:
>> Hi Eric,
>> On 21/06/2012 4:05 PM, Eric Wang wrote:
>>> I come from Java SQE team who are interested in regression test bug fix.
>>> Here is the first simple fix for bug 7123972
>>> <>, Can you please help
>>> to review and comment? Attachment is the patch Thanks!
>>> This bug is caused by wrong assumption that the GC is started
>>> immediately to recycle un-referenced objects after System.gc() called
>>> one or two times.
>>> The proposed solution is to make sure the un-referenced object is
>>> recycled by GC before checking if the reference is null.
>> Your patch makes its own assumptions - specifically that finalization
>> must eventually run. At a minimum you should add
>> System.runFinalization() calls after the System.gc() inside the loop.
>> Even that is no guarantee in a general sense, though it should work
>> for hotspot.
>> David
>>> Regards,
>>> Eric

More information about the core-libs-dev mailing list