<i18n dev> RFR: 8161203: ResourceBundle.getBundle performance regression

Alan Bateman Alan.Bateman at oracle.com
Sun Jul 24 09:35:47 UTC 2016

On 22/07/2016 14:13, Peter Levart wrote:

> :
> The changes are very straightforward. They preserve the general 
> structure of the logic. I renamed the CacheKey nested class to 
> LoadSession as it now only functions as a mutable object passed around 
> the methods while executing the getBundle() process. LoadSession is 
> now a factory for ClassLoaderValue cache key. I moved the loadTime and 
> expirationTime fields from LoadSession (old CacheKey) to 
> ResourceBundle. As each cached entry must maintain it's own 
> loadTime/expirationTime, I changed the NONEXISTENT_BUNDLE constant 
> into a private subclass of ResourceBundle. The back-link from 
> ResourceBundle to CacheKey is not needed any more. There is a backlink 
> from BundleReference to ClassLoaderValue key and the associated 
> ClassLoader to enable expunging.
Not a comment on the the ResourceBundle changes but I think it would be 
generally useful if we moved CLV jdk.internal.<somewhere> so that it can 
be used by other code in java.base. I had cause to do this recently when 
prototyping something in a completely different area recently.


More information about the i18n-dev mailing list