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 rd...@apache.org on 2009/08/01 13:00:12 UTC

svn commit: r799828 - /james/jsieve/trunk/mailet/src/main/java/org/apache/jsieve/mailet/ActionDispatcher.java

Author: rdonkin
Date: Sat Aug  1 11:00:12 2009
New Revision: 799828

URL: http://svn.apache.org/viewvc?rev=799828&view=rev
Log:
JSIEVE-68 Switch to thread safe map https://issues.apache.org/jira/browse/JSIEVE-68

Modified:
    james/jsieve/trunk/mailet/src/main/java/org/apache/jsieve/mailet/ActionDispatcher.java

Modified: james/jsieve/trunk/mailet/src/main/java/org/apache/jsieve/mailet/ActionDispatcher.java
URL: http://svn.apache.org/viewvc/james/jsieve/trunk/mailet/src/main/java/org/apache/jsieve/mailet/ActionDispatcher.java?rev=799828&r1=799827&r2=799828&view=diff
==============================================================================
--- james/jsieve/trunk/mailet/src/main/java/org/apache/jsieve/mailet/ActionDispatcher.java (original)
+++ james/jsieve/trunk/mailet/src/main/java/org/apache/jsieve/mailet/ActionDispatcher.java Sat Aug  1 11:00:12 2009
@@ -19,8 +19,8 @@
 
 package org.apache.jsieve.mailet;
 
-import java.util.HashMap;
-import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
 
 import javax.mail.MessagingException;
 
@@ -33,6 +33,8 @@
 
 /**
  * Dynamically dispatches an Action depending on the type of Action received at runtime. 
+ * <h4>Thread Safety</h4>
+ * <p>An instance maybe safe accessed concurrently by multiple threads.</p>
  */
 public class ActionDispatcher
 {   
@@ -41,7 +43,7 @@
      * handle the Action.
      * <Action, MailAction>
      */ 
-    private Map<Class, MailAction> fieldMailActionMap;
+    private ConcurrentMap<Class, MailAction> fieldMailActionMap;
 
     /**
      * Constructor for ActionDispatcher.
@@ -63,7 +65,7 @@
      */
     public void execute(final Action anAction, final Mail aMail, final ActionContext context) throws MessagingException
     {
-        MailAction mailAction = getMethodMap().get(anAction.getClass());
+        final MailAction mailAction = getMethodMap().get(anAction.getClass());
         mailAction.execute(anAction, aMail, context);
     }
 
@@ -71,7 +73,7 @@
      * Returns the methodMap.
      * @return Map
      */
-    public Map<Class, MailAction> getMethodMap()
+    public ConcurrentMap<Class, MailAction> getMethodMap()
     {
         return fieldMailActionMap;
     }    
@@ -80,9 +82,9 @@
      * Returns a new methodMap.
      * @return Map
      */
-    private Map<Class, MailAction> defaultMethodMap()
+    private ConcurrentMap<Class, MailAction> defaultMethodMap()
     {
-        Map<Class, MailAction> actionMap = new HashMap<Class, MailAction>(4);
+        final ConcurrentMap<Class, MailAction> actionMap = new ConcurrentHashMap<Class, MailAction>(4);
         actionMap.put(ActionFileInto.class, new FileIntoAction());
         actionMap.put(ActionKeep.class, new KeepAction());
         actionMap.put(ActionRedirect.class, new RedirectAction());
@@ -94,7 +96,7 @@
      * Sets the mail action mail.
      * @param mailActionMap <Action, MailAction> not null
      */
-    protected void setMethodMap(Map<Class, MailAction>  mailActionMap)
+    protected void setMethodMap(ConcurrentMap<Class, MailAction>  mailActionMap)
     {
         fieldMailActionMap = mailActionMap;
     }



---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org