Merge "Use only a single instance for NLS translation bundles"

This commit is contained in:
Chris Aniszczyk 2010-09-27 17:59:36 -04:00 committed by Code Review
commit e5c217bcf3
1 changed files with 6 additions and 1 deletions

View File

@ -125,11 +125,16 @@ private NLS(Locale locale) {
this.locale = locale;
}
@SuppressWarnings("unchecked")
private <T extends TranslationBundle> T get(Class<T> type) {
TranslationBundle bundle = map.get(type);
if (bundle == null) {
bundle = GlobalBundleCache.lookupBundle(locale, type);
map.putIfAbsent(type, bundle);
// There is a small opportunity for a race, which we may
// lose. Accept defeat and return the winner's instance.
TranslationBundle old = map.putIfAbsent(type, bundle);
if (old != null)
bundle = old;
}
return (T) bundle;
}