
| Key: |
STR-2843
|
| Type: |
Bug
|
| Status: |
Closed
|
| Resolution: |
Fixed
|
| Priority: |
Major
|
| Assignee: |
Don Brown
|
| Reporter: |
qxo
|
| Votes: |
0
|
| Watchers: |
0
|
|
If you were logged in you would be able to see more operations.
|
|
|
|
File Attachments:
|
|
|
Environment:
|
Operating System: other
Platform: Other
Operating System: other
Platform: Other
|
|
|
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.");
}
}
}
|
|
Description
|
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.");
}
}
} |
Show » |
|