new webrev: http://cr.openjdk.java.net/~xuelei/7115524/webrev.01/

You're right on the synchronization issue. In the new webrev, I also
remove the "synchronized" keyword on method. Instead, a synchronization
on the static attribute is used.

Thanks,
Xuelei

On 11/26/2011 11:16 PM, Weijun Wang wrote:
> 
> On Nov 26, 2011, at 10:58 PM, Xuelei Fan <xuelei....@oracle.com> wrote:
> 
>> I was wondering why we synchronized the getInstance() and
>> engineGetCertificates(). It seems that we only need to synchronize the
>> serverChain variable.
>>
>> I will update the synchronization if no objection.
>>
>> Thanks,
>> Xuelei
>>
>> On 11/26/2011 10:42 PM, Xuelei Fan wrote:
>>> On 11/26/2011 9:59 PM, Weijun Wang wrote:
>>>> Hi Xuelei
>>>>
>>>> Why move the local variables to static fields?
>>>>
>>> In order to improve the performance. SSLContext.init() is expensive.
>>>
>>>> The engineGetCertificates method is only synchronized on this but not the 
>>>> whole class, so there is a chance that the method is called by multiple 
>>>> threads at the same time. This means if you only use one static 
>>>> GetChainTrustManager field, its serverChain field can be modified by 
>>>> different threads.
>>>>
>>> We have synchronized the engineGetCertificates(), and this method is the
>>> only method to access the GetChainTrustManager object. As the attribute
>>> is declared as "final static", so it will be initialized once even in
>>> multiple threads.
> 
> But this method is only synchronized on the instance, not the class. You can 
> create two SSLServerCertStore objects can call this method at the same time.
> 
> Max
> 
>>>
>>> That's, the access to serverChain variable has been synchronized by
>>> synchronizing the engineGetCertificates method.
>>>
>>> Xuelei
>>>
>>>> -Max
>>>>
>>>> On Nov 26, 2011, at 8:43 PM, Xuelei Fan wrote:
>>>>
>>>>> webrev: http://cr.openjdk.java.net/~xuelei/7115524/webrev.00/
>>>>>
>>>>> No new regression test, the current test,
>>>>> test/sun/security/tools/keytool/printssl.sh, has already been able to
>>>>> test the update.
>>>>>
>>>>> Thanks,
>>>>> Xuelei
>>>>
>>>
>>

Reply via email to