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 {