RFR: 8161203: ResourceBundle.getBundle performance regression
    Peter Levart 
    peter.levart at gmail.com
       
    Thu Jul 21 13:13:02 UTC 2016
    
    
  
Hi Masayoshi,
Previously the CacheKey::clone() method cleared a reference to 
'providers' in the clone making the provides unreachable from the clone 
and making the clone unable to obtain providers. Now you also reset the 
'providersChecked' flag which makes the clone be able to re-obtain the 
providers. This is dangerous as the clone is used as a key in the cache 
and is strongly reachable from the cache. A slight future modification 
of code could unintentionally produce a class loader leak. To prevent 
that, I would somehow mark the clone so that any attempt to invoke 
getProviders() on the clone would throw IllegalStateException.
Regards, Peter
On 07/21/2016 06:14 AM, Masayoshi Okutsu wrote:
> Hi,
>
> Please review the fix for JDK-8161203. The fix is to lazily load 
> ResourceBundleProviders. It's not necessary to load providers before 
> cache look-up.
>
> Issue:
> https://bugs.openjdk.java.net/browse/JDK-8161203
>
> Webrev:
> http://cr.openjdk.java.net/~okutsu/9/8161203/webrev.01
>
> Thanks,
> Masayoshi
>
    
    
More information about the jigsaw-dev
mailing list