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