You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@struts.apache.org by cr...@apache.org on 2006/01/31 01:38:17 UTC

svn commit: r373652 - /struts/shale/trunk/core-library/src/java/org/apache/shale/util/LoadBundle.java

Author: craigmcc
Date: Mon Jan 30 16:38:16 2006
New Revision: 373652

URL: http://svn.apache.org/viewcvs?rev=373652&view=rev
Log:
Improve the usability of the exception you get if LoadBundle.getMap() is
called outside the scope of a JSF request.

Modified:
    struts/shale/trunk/core-library/src/java/org/apache/shale/util/LoadBundle.java

Modified: struts/shale/trunk/core-library/src/java/org/apache/shale/util/LoadBundle.java
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/core-library/src/java/org/apache/shale/util/LoadBundle.java?rev=373652&r1=373651&r2=373652&view=diff
==============================================================================
--- struts/shale/trunk/core-library/src/java/org/apache/shale/util/LoadBundle.java (original)
+++ struts/shale/trunk/core-library/src/java/org/apache/shale/util/LoadBundle.java Mon Jan 30 16:38:16 2006
@@ -29,6 +29,7 @@
 import java.util.MissingResourceException;
 import java.util.ResourceBundle;
 import java.util.Set;
+import javax.faces.component.UIViewRoot;
 
 import javax.faces.context.FacesContext;
 
@@ -137,6 +138,9 @@
     * of the application resource bundle specified by the <code>basename</code>
     * property, localized for the <code>Locale</code> stored in the
     * <code>UIViewRoot</code> for the current request.</p>
+    *
+    * @exception IllegalStateException if we are not inside a Faces request,
+    *  or if there is not a current view root with a valid locale
     */
    public Map getMap() {
 
@@ -148,9 +152,19 @@
            throw new IllegalStateException("The 'basename' property cannot be null"); // FIXME - i18n
        }
        FacesContext context = FacesContext.getCurrentInstance();
-       assert context != null;
-       Locale locale = context.getViewRoot().getLocale();
-       assert locale != null;
+       UIViewRoot root = null;
+       Locale locale = null;
+       if (context != null) {
+           root = context.getViewRoot();           
+       }
+       if (root != null) {
+           locale = root.getLocale();
+       }
+       if (locale == null) {
+           throw new IllegalStateException("Cannot retrieve locale-specific map if there " +
+                   "is not a current Faces request, containing a valid view root, with" +
+                   "a Locale instance inside.");
+       }
 
        // Look up the requested resource bundle
        final ResourceBundle bundle = getBundle(basename, locale);



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org
For additional commands, e-mail: dev-help@struts.apache.org