RFR (JAXP): 8146961: Fix PermGen memory leaks caused by static final Exceptions
Aleks Efimov
aleksej.efimov at oracle.com
Thu Aug 18 10:05:58 UTC 2016
Hi Peter,
Thank you for review and suggestion to add super constructor call: will
add it before pushing the changes.
Best Regards,
Aleksej
On 18/08/16 11:08, Peter Levart wrote:
> Hi Aleks,
>
> Looks OK, but if AbortException is never inspected for a stack trace,
> then it could be constructed without it. This is perhaps unnecessary
> if it is not on the hot path, but it is easy to just call the
> appropriate super constructor:
>
> public class AbortException extends RuntimeException {
>
> private static final long serialVersionUID =
> 2608302175475740417L;
>
> /**
> * Constructor AbortException
> */
> public AbortException() { super(null, null, false, false); }
> }
>
>
> Regards, Peter
>
> On 08/17/2016 04:04 PM, Aleks Efimov wrote:
>> Hi Joe, Aleksey,
>> Thank you for reviewing the initial fix.
>>
>> I followed the Joe's suggestion (thanks for that) and removed static
>> 'abort' field completely, the functionality was replaced by throwing
>> the exception of newly added type - AbortException. The new webrev
>> with removed 'abort' can be found here:
>> http://cr.openjdk.java.net/~aefimov/8146961/9/01
>>
>> The Tomcat reproducer attached to the bug report fails without the
>> fix and passes with the new version of the fix.
>> The JPRT and JCK testing again shows no related jaxp tests failures.
>>
>> Best Regards,
>> Aleksej
>>
>>
>> On 15/08/16 21:09, Joe Wang wrote:
>>> Hi Aleksej,
>>>
>>> I suggest we get rid of the static abort. If RuntimeException
>>> happens, check where it happens. The first use case looks suspicious
>>> as it just returns if it's an instance of RE. For the 2nd case in
>>> DOM error report, let's throw a RuntimeException with the specified
>>> error message if error happens, and there's no handler or the
>>> handler failed to handle it. (would be better than an empty RE)
>>>
>>> Best,
>>> Joe
>>>
>>> On 8/15/16, 10:38 AM, Aleks Efimov wrote:
>>>> Hi,
>>>>
>>>> Please, help to review the fix for memory leak [1] in
>>>> com.sun.org.apache.xerces.internal.dom.DOMNormalizer that is caused
>>>> by usage of static final exceptions.
>>>> This problem was already fixed in Apache Xerces project [2] and I
>>>> would like to backport it to JDK9 Xerces implementation.
>>>> Webrev with the changes:
>>>> http://cr.openjdk.java.net/~aefimov/8146961/9/00
>>>>
>>>> The Tomcat reproducer attached to the bug report fails without the
>>>> fix and passes with the fix.
>>>> The JPRT and JCK testing shows no jaxp tests failures with the
>>>> proposed fix.
>>>>
>>>> With Best Regards,
>>>> Aleksej
>>>>
>>>> [1] https://bugs.openjdk.java.net/browse/JDK-8146961
>>>> [2] https://issues.apache.org/jira/browse/XERCESJ-1667
>>>>
>>
>
More information about the core-libs-dev
mailing list