Use only a single instance for NLS translation bundles
As findbugs pointed out, there was a small risk for creating multiple instances of translation bundles. If that happens, drop the second instance. Change-Id: I3aacda86251d511f6bbc2ed7481d561449ce3b6c Signed-off-by: Robin Rosenberg <robin.rosenberg@dewire.com>
This commit is contained in:
parent
11f99fecfd
commit
be9d096986
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue