Author: adrianc
Date: Mon Feb 4 15:23:35 2008 New Revision: 618490 URL: http://svn.apache.org/viewvc?rev=618490&view=rev Log: Fixed "resource not found" exception that occurred when switching over to new XML properties file format - https://issues.apache.org/jira/browse/OFBIZ-1612. Modified: ofbiz/trunk/framework/base/src/base/org/ofbiz/base/util/UtilProperties.java Modified: ofbiz/trunk/framework/base/src/base/org/ofbiz/base/util/UtilProperties.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/base/org/ofbiz/base/util/UtilProperties.java?rev=618490&r1=618489&r2=618490&view=diff ============================================================================== --- ofbiz/trunk/framework/base/src/base/org/ofbiz/base/util/UtilProperties.java (original) +++ ofbiz/trunk/framework/base/src/base/org/ofbiz/base/util/UtilProperties.java Mon Feb 4 15:23:35 2008 @@ -803,7 +803,7 @@ * properties file format. */ public static class UtilResourceBundle extends ResourceBundle { - protected static UtilCache<String, ResourceBundle> bundleCache = new UtilCache<String, ResourceBundle>("properties.UtilPropertiesBundleCache"); + protected static UtilCache<String, UtilResourceBundle> bundleCache = new UtilCache<String, UtilResourceBundle>("properties.UtilPropertiesBundleCache"); protected Properties properties = null; protected Locale locale = null; @@ -817,7 +817,7 @@ public static ResourceBundle getBundle(String resource, Locale locale, ClassLoader loader) throws MissingResourceException { String resourceName = createResourceName(resource, locale, true); - ResourceBundle bundle = bundleCache.get(resourceName); + UtilResourceBundle bundle = bundleCache.get(resourceName); if (bundle == null) { synchronized (bundleCache) { if (bundle != null) { @@ -830,7 +830,7 @@ Locale candidateLocale = candidateLocales.removeLast(); // ResourceBundles are connected together as a singly-linked list String parentName = createResourceName(resource, candidateLocale, true); - ResourceBundle lookupBundle = bundleCache.get(parentName); + UtilResourceBundle lookupBundle = bundleCache.get(parentName); if (lookupBundle == null) { Properties newProps = getProperties(resource, candidateLocale); if (UtilValidate.isNotEmpty(newProps)) { @@ -845,6 +845,12 @@ } if (bundle == null) { throw new MissingResourceException("Resource " + resource + ", locale " + locale + " not found", null, null); + } else { + if (!bundle.getLocale().equals(locale)) { + // Create a "dummy" bundle for the requested locale + // Debug.logInfo("Creating dummy bundle, size = " + bundle.properties.size(), module); + bundle = new UtilResourceBundle(bundle.properties, locale, bundle); + } } double totalTime = System.currentTimeMillis() - startTime; Debug.logInfo("ResourceBundle " + resource + " (" + locale + ") created in " + totalTime + " mS", module); |
Free forum by Nabble | Edit this page |