You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@struts.apache.org by dg...@apache.org on 2003/03/13 02:44:48 UTC
cvs commit: jakarta-struts/src/share/org/apache/struts/util PropertyMessageResources.java
dgraham 2003/03/12 17:44:48
Modified: src/share/org/apache/struts/util
PropertyMessageResources.java
Log:
Synchronized loadLocale to fix PR #17328.
Revision Changes Path
1.7 +28 -28 jakarta-struts/src/share/org/apache/struts/util/PropertyMessageResources.java
Index: PropertyMessageResources.java
===================================================================
RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/util/PropertyMessageResources.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- PropertyMessageResources.java 17 Oct 2002 02:56:58 -0000 1.6
+++ PropertyMessageResources.java 13 Mar 2003 01:44:47 -0000 1.7
@@ -7,7 +7,7 @@
*
* The Apache Software License, Version 1.1
*
- * Copyright (c) 1999-2001 The Apache Software Foundation. All rights
+ * Copyright (c) 1999-2003 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -62,16 +62,15 @@
package org.apache.struts.util;
-
import java.io.InputStream;
-import java.util.Enumeration;
import java.util.HashMap;
+import java.util.Iterator;
import java.util.Locale;
import java.util.Properties;
+
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-
/**
* Concrete subclass of <code>MessageResources</code> that reads message keys
* and corresponding strings from named property resources in the same manner
@@ -89,7 +88,6 @@
* @author Craig R. McClanahan
* @version $Revision$ $Date$
*/
-
public class PropertyMessageResources extends MessageResources {
@@ -196,8 +194,9 @@
synchronized (messages) {
message = (String) messages.get(messageKey);
if (message != null) {
- if (addIt)
+ if (addIt) {
messages.put(originalKey, message);
+ }
return (message);
}
}
@@ -205,8 +204,9 @@
// Strip trailing modifiers to try a more general locale key
addIt = true;
underscore = localeKey.lastIndexOf("_");
- if (underscore < 0)
+ if (underscore < 0) {
break;
+ }
localeKey = localeKey.substring(0, underscore);
}
@@ -238,10 +238,11 @@
}
// Return an appropriate error indication
- if (returnNull)
+ if (returnNull) {
return (null);
- else
+ } else {
return ("???" + messageKey(locale, key) + "???");
+ }
}
@@ -260,23 +261,23 @@
*
* @param localeKey Locale key for the messages to be retrieved
*/
- protected void loadLocale(String localeKey) {
+ protected synchronized void loadLocale(String localeKey) {
if (log.isTraceEnabled()) {
log.trace("loadLocale(" + localeKey + ")");
}
-
+
// Have we already attempted to load messages for this locale?
- synchronized (locales) {
- if (locales.get(localeKey) != null)
- return;
- locales.put(localeKey, localeKey);
+ if (locales.get(localeKey) != null) {
+ return;
}
+ 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)
+ if (localeKey.length() > 0) {
name += "_" + localeKey;
+ }
name += ".properties";
InputStream is = null;
Properties props = new Properties();
@@ -311,18 +312,17 @@
}
// Copy the corresponding values into our cache
- if (props.size() < 1)
+ if (props.size() < 1) {
return;
+ }
synchronized (messages) {
- Enumeration names = props.keys();
- while (names.hasMoreElements()) {
- String key = (String) names.nextElement();
+ Iterator names = props.keySet().iterator();
+ while (names.hasNext()) {
+ String key = (String) names.next();
if (log.isTraceEnabled()) {
- log.trace(" Saving message key '" +
- messageKey(localeKey, key));
+ log.trace(" Saving message key '" + messageKey(localeKey, key));
}
- messages.put(messageKey(localeKey, key),
- props.getProperty(key));
+ messages.put(messageKey(localeKey, key), props.getProperty(key));
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: struts-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: struts-dev-help@jakarta.apache.org