Author: hemapani
Date: Tue Jan 18 13:28:17 2011
New Revision: 1060360

URL: http://svn.apache.org/viewvc?rev=1060360&view=rev
Log:
fixing https://issues.apache.org/jira/browse/AXIS2-4365 by putting a copy on 
write array list

Modified:
    
axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/handler/HandlerChainProcessor.java

Modified: 
axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/handler/HandlerChainProcessor.java
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/handler/HandlerChainProcessor.java?rev=1060360&r1=1060359&r2=1060360&view=diff
==============================================================================
--- 
axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/handler/HandlerChainProcessor.java
 (original)
+++ 
axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/handler/HandlerChainProcessor.java
 Tue Jan 18 13:28:17 2011
@@ -49,8 +49,10 @@ import javax.xml.ws.handler.Handler;
 import javax.xml.ws.handler.LogicalHandler;
 import javax.xml.ws.handler.soap.SOAPHandler;
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.Iterator;
 import java.util.List;
+import java.util.concurrent.CopyOnWriteArrayList;
 
 public class HandlerChainProcessor {
 
@@ -75,7 +77,7 @@ public class HandlerChainProcessor {
 
     // Copy of the handler chain used by HandlerChainProcessor
     private List<Handler> handlers = null;
-    private static final List<Handler> EMPTY_CHAIN = new ArrayList<Handler>(); 
+    private static final List<Handler> EMPTY_CHAIN = new 
ArrayList<Handler>(0); 
     
     // for tracking purposes -- see trackInternalCall
     private static Handler currentHandler = null;
@@ -123,8 +125,7 @@ public class HandlerChainProcessor {
                     // Use empty chain to avoid excessive garbage collection
                     this.handlers = EMPTY_CHAIN;
                 } else {
-                    this.handlers = new ArrayList<Handler>(); 
-                    this.handlers.addAll(chain);
+                    this.handlers = new CopyOnWriteArrayList<Handler>(chain); 
                 }
             }
         } else {


Reply via email to