You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by lu...@apache.org on 2014/08/25 08:43:07 UTC
git commit: Adds additional logging of missing keys in resource
bundles
Repository: struts
Updated Branches:
refs/heads/develop eecd90763 -> 583234b8c
Adds additional logging of missing keys in resource bundles
Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/583234b8
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/583234b8
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/583234b8
Branch: refs/heads/develop
Commit: 583234b8ccc24dc52c1b718a153126f7319de262
Parents: eecd907
Author: Lukasz Lenart <lu...@apache.org>
Authored: Mon Aug 25 08:42:50 2014 +0200
Committer: Lukasz Lenart <lu...@apache.org>
Committed: Mon Aug 25 08:42:50 2014 +0200
----------------------------------------------------------------------
.../apache/struts2/dispatcher/Dispatcher.java | 3 ++
.../xwork2/util/LocalizedTextUtil.java | 38 +++++++++++++++-----
2 files changed, 32 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/struts/blob/583234b8/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java b/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java
index 95dc308..436490e 100644
--- a/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java
+++ b/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java
@@ -439,6 +439,9 @@ public class Dispatcher {
boolean reloadi18n = Boolean.valueOf(container.getInstance(String.class, StrutsConstants.STRUTS_I18N_RELOAD));
LocalizedTextUtil.setReloadBundles(reloadi18n);
+ boolean devMode = Boolean.valueOf(container.getInstance(String.class, StrutsConstants.STRUTS_DEVMODE));
+ LocalizedTextUtil.setDevMode(devMode);
+
return container;
}
http://git-wip-us.apache.org/repos/asf/struts/blob/583234b8/xwork-core/src/main/java/com/opensymphony/xwork2/util/LocalizedTextUtil.java
----------------------------------------------------------------------
diff --git a/xwork-core/src/main/java/com/opensymphony/xwork2/util/LocalizedTextUtil.java b/xwork-core/src/main/java/com/opensymphony/xwork2/util/LocalizedTextUtil.java
index 9aad928..ec7860e 100644
--- a/xwork-core/src/main/java/com/opensymphony/xwork2/util/LocalizedTextUtil.java
+++ b/xwork-core/src/main/java/com/opensymphony/xwork2/util/LocalizedTextUtil.java
@@ -86,9 +86,13 @@ import java.util.concurrent.ConcurrentMap;
*/
public class LocalizedTextUtil {
- private static final ConcurrentMap<Integer, List<String>> classLoaderMap = new ConcurrentHashMap<Integer, List<String>>();
private static final Logger LOG = LoggerFactory.getLogger(LocalizedTextUtil.class);
+
+ private static final ConcurrentMap<Integer, List<String>> classLoaderMap = new ConcurrentHashMap<Integer, List<String>>();
+
private static boolean reloadBundles = false;
+ private static boolean devMode;
+
private static final ConcurrentMap<String, ResourceBundle> bundlesMap = new ConcurrentHashMap<String, ResourceBundle>();
private static final ConcurrentMap<MessageFormatKey, MessageFormat> messageFormats = new ConcurrentHashMap<MessageFormatKey, MessageFormat>();
private static final ConcurrentMap<Integer, ClassLoader> delegatedClassLoaderMap = new ConcurrentHashMap<Integer, ClassLoader>();
@@ -120,6 +124,10 @@ public class LocalizedTextUtil {
LocalizedTextUtil.reloadBundles = reloadBundles;
}
+ public static void setDevMode(boolean devMode) {
+ LocalizedTextUtil.devMode = devMode;
+ }
+
/**
* Add's the bundle to the internal list of default bundles.
* <p/>
@@ -129,7 +137,7 @@ public class LocalizedTextUtil {
*/
public static void addDefaultResourceBundle(String resourceBundleName) {
//make sure this doesn't get added more than once
- ClassLoader ccl = null;
+ ClassLoader ccl;
synchronized (XWORK_MESSAGES_BUNDLE) {
ccl = getCurrentThreadContextClassLoader();
List<String> bundles = classLoaderMap.get(ccl.hashCode());
@@ -207,7 +215,11 @@ public class LocalizedTextUtil {
try {
return bundle.getString(aTextName);
} catch (MissingResourceException e) {
- // ignore and try others
+ if (devMode) {
+ LOG.warn("Missing key [#0] in bundle [#1]!", aTextName, bundleName);
+ } else if (LOG.isDebugEnabled()) {
+ LOG.debug("Missing key [#0] in bundle [#1]!", aTextName, bundleName);
+ }
}
}
}
@@ -265,6 +277,9 @@ public class LocalizedTextUtil {
bundle = bundlesMap.get(key);
}
} catch (MissingResourceException e) {
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Missing resource bundle [#0]!", aBundleName);
+ }
}
}
}
@@ -273,8 +288,6 @@ public class LocalizedTextUtil {
/**
* Sets a {@link ClassLoader} to look up the bundle from if none can be found on the current thread's classloader
- *
- * @param classLoader
*/
public static void setDelegatedClassLoader(final ClassLoader classLoader) {
synchronized (bundlesMap) {
@@ -284,8 +297,6 @@ public class LocalizedTextUtil {
/**
* Removes the bundle from any cached "misses"
- *
- * @param bundleName
*/
public static void clearBundle(final String bundleName) {
bundlesMap.remove(getCurrentThreadContextClassLoader().hashCode() + bundleName);
@@ -524,7 +535,7 @@ public class LocalizedTextUtil {
}
// get default
- GetDefaultMessageReturnArg result = null;
+ GetDefaultMessageReturnArg result;
if (indexedTextName == null) {
result = getDefaultMessage(aTextName, locale, valueStack, args, defaultMessage);
} else {
@@ -627,7 +638,11 @@ public class LocalizedTextUtil {
return formatWithNullDetection(mf, args);
} catch (MissingResourceException ex) {
- // ignore
+ if (devMode) {
+ LOG.warn("Missing key [#0] in bundle [#1]!", aTextName, bundle);
+ } else if (LOG.isDebugEnabled()) {
+ LOG.debug("Missing key [#0] in bundle [#1]!", aTextName, bundle);
+ }
}
GetDefaultMessageReturnArg result = getDefaultMessage(aTextName, locale, valueStack, args, defaultMessage);
@@ -679,6 +694,11 @@ public class LocalizedTextUtil {
MessageFormat mf = buildMessageFormat(message, locale);
return formatWithNullDetection(mf, args);
} catch (MissingResourceException e) {
+ if (devMode) {
+ LOG.warn("Missing key [#0] in bundle [#1]!", key, bundleName);
+ } else if (LOG.isDebugEnabled()) {
+ LOG.debug("Missing key [#0] in bundle [#1]!", key, bundleName);
+ }
return null;
}
}