[richfaces-svn-commits] JBoss Rich Faces SVN: r13587 - trunk/framework/api/src/main/java/org/ajax4jsf.

richfaces-svn-commits at lists.jboss.org richfaces-svn-commits at lists.jboss.org
Tue Apr 14 21:35:33 EDT 2009


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);
 		}
 




More information about the richfaces-svn-commits mailing list