RFR 8168069 : X509TrustManagerImpl causes ClassLoader leaks with unparseable extensions

Sean Mullan sean.mullan at oracle.com
Wed Feb 20 20:45:16 UTC 2019


On 2/20/19 2:28 PM, Xuelei Fan wrote:
> On 2/20/2019 10:52 AM, Sean Mullan wrote:
>> On 2/20/19 1:41 PM, Xuelei Fan wrote:
>>> ping ...
>>
>> I took a quick look, but not enough time to understand the full 
>> context. The exception in the UnparseableExtension can be useful to 
>> get a stack trace later of why it could not be parsed. Did you think 
>> of any other way you can fix this?
>>
> In the UnparseableExtension implementation, the private 'why' variable 
> can be used to dump the stack trace later.  But as it is used to get it 
> exception message only, I updated to store the exception message only. 
> The update does not impact the fix.  It is a kind of DiD fix in case it 
> is used in a static field in other places.  We can leave it unchanged if 
> you like.

Actually I took another closer look at the code and I am ok with your 
change since you can always get the stack trace if you reparse the cert 
and enable debugging.

--Sean

> Thanks,
> Xuelei
> 
>> --Sean
>>
>>>
>>> On 2/8/2019 12:26 PM, Xuelei Fan wrote:
>>>> Hi,
>>>>
>>>> Could I get the following update reviewed?
>>>>     http://cr.openjdk.java.net/~xuelei/8168069/webrev.00/
>>>>
>>>> In the lazy initialization holder in SSLContextImpl, an exception is 
>>>> reserved as static in order to check if the holder is initialized 
>>>> properly.  If the exception had a strong referent to some object, 
>>>> the object will be out of the cycle of garbage collection.
>>>>
>>>> With this update, the original exception is debug logged, and a new 
>>>> exception with the same exception message as the original one.
>>>>
>>>> Code cleanup, no new regression test.
>>>>
>>>> Thanks & Regards,
>>>> Xuelei


More information about the security-dev mailing list