CLONE -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: Action  
    Versions: Nightly Build    
 Environment: Operating System: other
Platform: Other
    Reporter: qxo
 Assigned to: Struts Developer Mailing List 


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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to