in src/java/org/apache/fulcrum/localization/SimpleLocalizationServiceImpl.java [324:363]
private synchronized ResourceBundle cacheBundle(
String bundleName,
Locale locale)
throws MissingResourceException
{
HashMap<Locale, ResourceBundle> bundlesByLocale = (HashMap<Locale, ResourceBundle>) bundles.get(bundleName);
ResourceBundle rb =
(bundlesByLocale == null
? null
: (ResourceBundle) bundlesByLocale.get(locale));
if (rb == null)
{
bundlesByLocale =
(bundlesByLocale == null
? new HashMap<Locale, ResourceBundle>(3)
: new HashMap<Locale, ResourceBundle>(bundlesByLocale));
try
{
rb = ResourceBundle.getBundle(bundleName, locale);
}
catch (MissingResourceException e)
{
rb = findBundleByLocale(bundleName, locale, bundlesByLocale);
if (rb == null)
{
throw (MissingResourceException) e.fillInStackTrace();
}
}
if (rb != null)
{
// Cache bundle.
bundlesByLocale.put(rb.getLocale(), rb);
HashMap<String, HashMap<Locale, ResourceBundle>> bundlesByName
= new HashMap<String, HashMap<Locale, ResourceBundle>>(bundles);
bundlesByName.put(bundleName, bundlesByLocale);
this.bundles = bundlesByName;
}
}
return rb;
}