You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by ad...@apache.org on 2017/12/12 08:48:37 UTC

[07/12] james-project git commit: JAMES-2251 Fix potential undefined behavior

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 <dt...@gmail.com>
Authored: Mon Oct 30 12:06:41 2017 -0400
Committer: Antoine Duprat <ad...@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-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org