Fallback locale mecanism is broken and highly dependent on Locale.getDefault()
------------------------------------------------------------------------------

                 Key: WW-3219
                 URL: https://issues.apache.org/struts/browse/WW-3219
             Project: Struts 2
          Issue Type: Bug
    Affects Versions: 2.1.8
         Environment: French JVM
            Reporter: Julien HENRY


If I have 2 resource bundles:
messages_fr.properties
messages.properties (containing en_US)

and my JVM is a French one (Locale.getDefault()=fr_FR)

then struts will always use messages_fr.properties whatever is the parameter 
used for struts.locale or request_locale (even if I explicitly require en_US).

This is because of the standard ResourceBundle.getBundle() lookup algorithm.

http://java.sun.com/j2se/1.4.2/docs/api/java/util/ResourceBundle.html#getBundle(java.lang.String,%20java.util.Locale,%20java.lang.ClassLoader)
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5086301
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4303146

Potential solutions:
1) Use new JDK 1.6 feature: ResourceBundle.Control to specify the fallback 
Locale
2) Don't use getBundle and implement your own resource bundle lookup mecanism 
like in JSF

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to