Author: jcarman
Date: Thu Jul 22 19:31:48 2010
New Revision: 966818

URL: http://svn.apache.org/viewvc?rev=966818&view=rev
Log:
Using CopyOnWriteArrayList for thread safety.

Modified:
    
commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/event/EventListenerSupport.java

Modified: 
commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/event/EventListenerSupport.java
URL: 
http://svn.apache.org/viewvc/commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/event/EventListenerSupport.java?rev=966818&r1=966817&r2=966818&view=diff
==============================================================================
--- 
commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/event/EventListenerSupport.java
 (original)
+++ 
commons/proper/lang/trunk/src/main/java/org/apache/commons/lang3/event/EventListenerSupport.java
 Thu Jul 22 19:31:48 2010
@@ -24,6 +24,7 @@ import java.lang.reflect.Method;
 import java.lang.reflect.Proxy;
 import java.util.LinkedList;
 import java.util.List;
+import java.util.concurrent.CopyOnWriteArrayList;
 
 /**
  * An EventListenerSupport object can be used to manage a list of event 
listeners of a particular type.
@@ -48,7 +49,7 @@ import java.util.List;
  */
 public class EventListenerSupport<L>
 {
-    private final List<L> listeners = new LinkedList<L>();
+    private final List<L> listeners = new CopyOnWriteArrayList<L>();
     private final L proxy;
 
     /**
@@ -110,7 +111,7 @@ public class EventListenerSupport<L>
     public void addListener(L listener)
     {
         Validate.notNull(listener, "Listener object cannot be null.");
-        listeners.add(0, listener);
+        listeners.add(listener);
     }
 
     /**
@@ -141,9 +142,9 @@ public class EventListenerSupport<L>
     {
         public Object invoke(Object proxy, Method method, Object[] args) 
throws Throwable
         {
-            for (int i = listeners.size() - 1; i >= 0; --i)
+            for (L listener : listeners)
             {
-                method.invoke(listeners.get(i), args);
+                method.invoke(listener, args);
             }
             return null;
         }


Reply via email to