JAMES-2251 Fix potential undefined behavior Because attributes is a Hashtable, iteration over the keys/keySet collection view should be manually synchronized.
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/4a58c3e9 Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/4a58c3e9 Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/4a58c3e9 Branch: refs/heads/master Commit: 4a58c3e9d1af852460fa6717d7d5af8d6b30b7aa Parents: c9233f1 Author: Daniel Trebbien <dtrebb...@gmail.com> Authored: Mon Oct 30 12:06:41 2017 -0400 Committer: Antoine Duprat <adup...@linagora.com> Committed: Tue Dec 12 09:47:37 2017 +0100 ---------------------------------------------------------------------- .../james/mailetcontainer/impl/JamesMailetContext.java | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/james-project/blob/4a58c3e9/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailetContext.java ---------------------------------------------------------------------- diff --git a/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailetContext.java b/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailetContext.java index 51d01f9..b013414 100644 --- a/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailetContext.java +++ b/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailetContext.java @@ -19,16 +19,14 @@ package org.apache.james.mailetcontainer.impl; +import java.util.ArrayList; import java.util.Collection; import java.util.Date; -import java.util.Enumeration; import java.util.HashSet; import java.util.Hashtable; import java.util.Iterator; import java.util.List; import java.util.Locale; -import java.util.Optional; -import java.util.Vector; import javax.inject.Inject; import javax.mail.Address; @@ -132,9 +130,9 @@ public class JamesMailetContext implements MailetContext, Configurable { @Override public Iterator<String> getAttributeNames() { - Vector<String> names = new Vector<>(); - for (Enumeration<String> e = attributes.keys(); e.hasMoreElements(); ) { - names.add(e.nextElement()); + final List<String> names; + synchronized (attributes) { + names = new ArrayList<>(attributes.keySet()); } return names.iterator(); } --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org