You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@struts.apache.org by "Don Brown (JIRA)" <ji...@apache.org> on 2006/04/28 07:45:18 UTC

[jira] Resolved: (STR-2843) PropertyMessageResources.loadLocale(String localeKey) has a problem!

     [ http://issues.apache.org/struts/browse/STR-2843?page=all ]
     
Don Brown resolved STR-2843:
----------------------------

    Fix Version: 1.3.3
     Resolution: Fixed
      Assign To: Don Brown

Um, Niall, you know you are a committer and can commit your own damn patches... ;)

Thanks qxo for the patch!

> PropertyMessageResources.loadLocale(String localeKey) has a problem!
> --------------------------------------------------------------------
>
>          Key: STR-2843
>          URL: http://issues.apache.org/struts/browse/STR-2843
>      Project: Struts Action 1
>         Type: Bug

>   Components: Core
>     Versions: Nightly Build
>  Environment: Operating System: other
> Platform: Other
>     Reporter: qxo
>     Assignee: Don Brown
>      Fix For: 1.3.3
>  Attachments: struts-STR-1843.patch
>
> when
> struts-config.xml -->message-resources -->parameter:resourceA
> if resourceA not existed,it should show some error message,but not!
> cause:
>   PropertyMessageResources.loadLocale(String localeKey) has a problem!
> I fixed it;
> Code:
>         protected synchronized void loadLocale(String localeKey) {
>             // Have we already attempted to load messages for this locale?
>             if (locales.get(localeKey) != null) {
>                 return;
>             }
>             
>             if (log.isTraceEnabled()) {
>                 log.trace("loadLocale(" + localeKey + ")");
>             }
>             
>         
>             
>             locales.put(localeKey, localeKey);
>             // Set up to load the property resource for this locale key, if we can
>             String name = config.replace('.', '/');
>             if (localeKey.length() > 0) {
>                 name += "_" + localeKey;
>             }
>             
>             name += ".properties";
>             InputStream is = null;
>           
>             // Load the specified property resource
>             if (log.isTraceEnabled()) {
>                 log.trace("  Loading resource '" + name + "'");
>             }
>             
>             ClassLoader classLoader =
> Thread.currentThread().getContextClassLoader();
>             if (classLoader == null) {
>                 classLoader = this.getClass().getClassLoader();
>             }
>             
>             is = classLoader.getResourceAsStream(name);
>             if (is != null) {
>                 Properties props = new Properties();
>     
>                 try {
>                     props.load(is);                    
>                 } catch (IOException e) {
>                     log.error("loadLocale()", e);
>                 } finally {
>                     try {
>                         is.close();
>                     } catch (IOException e) {
>                         log.error("loadLocale()", e);
>                     }
>                 }
>                 
>                 // Copy the corresponding values into our cache
>                 if (props.size() < 1) {
>                     return;
>                 }
>                 
>                 synchronized (messages) {
>                     Iterator names = props.keySet().iterator();
>                     while (names.hasNext()) {
>                         String key = (String) names.next();
>                         if (log.isTraceEnabled()) {
>                             log.trace("  Saving message key '" +
> messageKey(localeKey, key));
>                         }
>                         messages.put(messageKey(localeKey, key),
> props.getProperty(key));
>                     }
>                 }
>                 if (log.isTraceEnabled()) {
>                     log.trace("  Loading resource completed");
>                 }                
>             }else{
>                 
>                 if (log.isWarnEnabled()) {
>                     log.warn("the resource not found.");
>                 }
>             }
>         }

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/struts/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


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