[ http://issues.apache.org/struts/browse/STR-2843?page=all ]
Niall Pemberton updated STR-2843:
---------------------------------
Attachment: struts-STR-1843.patch
>From a scan of the method posted by the reporter looks like the change simply
>logs a warning if the resource is not found. Attached patch is slightly
>different in implementation of the same.
> 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
> 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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]