Author: alexsmirnov
Date: 2009-04-14 21:35:33 -0400 (Tue, 14 Apr 2009)
New Revision: 13587
Modified:
trunk/framework/api/src/main/java/org/ajax4jsf/Messages.java
Log:
Do not break on messages bundle loading errors.
Modified: trunk/framework/api/src/main/java/org/ajax4jsf/Messages.java
===================================================================
--- trunk/framework/api/src/main/java/org/ajax4jsf/Messages.java 2009-04-14 19:02:25 UTC
(rev 13586)
+++ trunk/framework/api/src/main/java/org/ajax4jsf/Messages.java 2009-04-15 01:35:33 UTC
(rev 13587)
@@ -22,12 +22,39 @@
package org.ajax4jsf;
import java.text.MessageFormat;
+import java.util.Collections;
+import java.util.Enumeration;
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
+import java.util.MissingResourceException;
import java.util.ResourceBundle;
public class Messages {
+ /**
+ * @author asmirnov
+ *
+ */
+ public static final class EmptyResourceBundle extends ResourceBundle {
+
+ /* (non-Javadoc)
+ * @see java.util.ResourceBundle#getKeys()
+ */
+ @Override
+ public Enumeration<String> getKeys() {
+ return Collections.enumeration(Collections.<String>emptyList());
+ }
+
+ /* (non-Javadoc)
+ * @see java.util.ResourceBundle#handleGetObject(java.lang.String)
+ */
+ @Override
+ protected Object handleGetObject(String key) {
+ return null;
+ }
+
+ }
+
private static final String BUNDLE_NAME = "org.ajax4jsf.messages";
private static Map<ClassLoader, ResourceBundle> bundles = new
HashMap<ClassLoader, ResourceBundle>();
@@ -36,7 +63,19 @@
ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();
ResourceBundle bundle = (ResourceBundle) bundles.get(contextClassLoader);
if (bundle == null) {
- bundle = ResourceBundle.getBundle(BUNDLE_NAME, Locale.getDefault(),
contextClassLoader);
+ try {
+ bundle = ResourceBundle.getBundle(BUNDLE_NAME, Locale
+ .getDefault(), contextClassLoader);
+
+ } catch (MissingResourceException e) {
+ try {
+ bundle = ResourceBundle.getBundle(BUNDLE_NAME, Locale
+ .getDefault(), Messages.class.getClassLoader());
+
+ } catch (MissingResourceException e2) {
+ bundle = new EmptyResourceBundle();
+ }
+ }
bundles.put(contextClassLoader, bundle);
}
Show replies by date