RFR: 8238566: java.security.Provider$Service.supportsParameter() is racy
Daniel Fuchs
daniel.fuchs at oracle.com
Thu Mar 12 11:42:23 UTC 2020
Hi Valerie,
Please ignore my comment. Sorry for the noise.
I somehow clicked on the wrong webrev link :-(
best regards,
-- daniel
On 12/03/2020 11:35, Daniel Fuchs wrote:
> Hi Valerie,
>
> Given that hasKeyAttributes is already decelared as volatile,
> may I suggest the following change that uses double locking?
> It will avoid synchronizing in the happy case where `hasKeyAttributes`
> has already been computed.
>
> 1924 private boolean hasKeyAttributes() {
> 1925 Boolean b = hasKeyAttributes;
> if (b != null) return b;
> synchronized (this) {
> b = hasKeyAttributes;
> 1926 if (b != null) return b;
> 1927 String s;
> 1928 s = getAttribute("SupportedKeyFormats");
>
> ...
>
> 1948 hasKeyAttributes = b;
> 1949 }
> 1950 return b;
> 1951 }
>
>
> best regards,
>
> -- daniel
>
> On 11/03/2020 20:31, Valerie Peng wrote:
>>
>> Anyone can help reviewing this?
>>
>> I addressed this by applying the double-checked-locking pattern for
>> lazy initialization of instance fields.
>>
>> Existing code already have most of the code structured for the pattern
>> but misses the second check.
>>
>> Bug: https://bugs.openjdk.java.net/browse/JDK-8238566
>>
>> Webrev: http://cr.openjdk.java.net/~valeriep/8238566/webrev.00/
>>
>> Thanks,
>>
>> Valerie
More information about the security-dev
mailing list