Repository: struts Updated Branches: refs/heads/master 7f5c8b620 -> cdbf697ad
WW-4652 fixed a concurrency issue in addDefaultResourceBundle Project: http://git-wip-us.apache.org/repos/asf/struts/repo Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/39ec62ac Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/39ec62ac Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/39ec62ac Branch: refs/heads/master Commit: 39ec62ac35a775687a7e0f81e80f77b2992068b3 Parents: d066891 Author: Przemek Bruski <pbru...@atlassian.com> Authored: Fri Jul 1 16:36:36 2016 +0200 Committer: Przemek Bruski <pbru...@atlassian.com> Committed: Fri Jul 1 16:36:36 2016 +0200 ---------------------------------------------------------------------- .../java/com/opensymphony/xwork2/util/LocalizedTextUtil.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/struts/blob/39ec62ac/core/src/main/java/com/opensymphony/xwork2/util/LocalizedTextUtil.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/com/opensymphony/xwork2/util/LocalizedTextUtil.java b/core/src/main/java/com/opensymphony/xwork2/util/LocalizedTextUtil.java index 29fbd2a..ad3a713 100644 --- a/core/src/main/java/com/opensymphony/xwork2/util/LocalizedTextUtil.java +++ b/core/src/main/java/com/opensymphony/xwork2/util/LocalizedTextUtil.java @@ -38,6 +38,7 @@ import java.text.MessageFormat; import java.util.*; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; +import java.util.concurrent.CopyOnWriteArrayList; /** @@ -141,14 +142,13 @@ public class LocalizedTextUtil { */ public static void addDefaultResourceBundle(String resourceBundleName) { //make sure this doesn't get added more than once - ClassLoader ccl; + final ClassLoader ccl = getCurrentThreadContextClassLoader(); synchronized (XWORK_MESSAGES_BUNDLE) { - ccl = getCurrentThreadContextClassLoader(); List<String> bundles = classLoaderMap.get(ccl.hashCode()); if (bundles == null) { - bundles = new ArrayList<String>(); - classLoaderMap.put(ccl.hashCode(), bundles); + bundles = new CopyOnWriteArrayList<>(); bundles.add(XWORK_MESSAGES_BUNDLE); + classLoaderMap.put(ccl.hashCode(), bundles); } bundles.remove(resourceBundleName); bundles.add(0, resourceBundleName);