Patch review request - Test bug 7123972 test/java/lang/annotation/loaderLeak/Main.java fails intermittently
David Holmes
david.holmes at oracle.com
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.
David
> 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
>>> <http://monaco.us.oracle.com/detail.jsf?cr=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