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 {