Author: muthulee
Date: Thu Apr  5 08:01:53 2012
New Revision: 1309687

URL: http://svn.apache.org/viewvc?rev=1309687&view=rev
Log:
Fixing the regretion issues associated with AXIS2-5286

Modified:
    
axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/engine/AxisConfiguration.java

Modified: 
axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/engine/AxisConfiguration.java
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/engine/AxisConfiguration.java?rev=1309687&r1=1309686&r2=1309687&view=diff
==============================================================================
--- 
axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/engine/AxisConfiguration.java
 (original)
+++ 
axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/engine/AxisConfiguration.java
 Thu Apr  5 08:01:53 2012
@@ -24,6 +24,7 @@ import java.net.URL;
 import java.security.PrivilegedAction;
 import java.text.ParseException;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.HashMap;
 import java.util.Hashtable;
 import java.util.Iterator;
@@ -31,8 +32,9 @@ import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
 import java.util.Collections;
+import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.CopyOnWriteArrayList;
+import java.util.concurrent.CopyOnWriteArraySet;
 
 import javax.xml.namespace.QName;
 
@@ -105,7 +107,7 @@ public class AxisConfiguration extends A
     private final ArrayList<QName> localPolicyAssertions = new 
ArrayList<QName>();
 
     // to store AxisObserver Objects
-    private List<AxisObserver> observersList = null;
+    private Set<AxisObserver> observerSet = null;
 
     private URL axis2Repository = null;
 
@@ -182,7 +184,7 @@ public class AxisConfiguration extends A
         outFaultPhases = new ArrayList<Phase>();
         faultyServices = new Hashtable<String, String>();
         faultyModules = new Hashtable<String, String>();
-        observersList = new CopyOnWriteArrayList<AxisObserver>();
+        observerSet = new CopyOnWriteArraySet<AxisObserver>();
         inPhasesUptoAndIncludingPostDispatch = new ArrayList<Phase>();
         systemClassLoader = org.apache.axis2.java.security.AccessController
                 .doPrivileged(new PrivilegedAction<ClassLoader>() {
@@ -314,7 +316,7 @@ public class AxisConfiguration extends A
     }
 
     public void addObservers(AxisObserver axisObserver) {
-        observersList.add(axisObserver);
+        observerSet.add(axisObserver);
     }
 
     /**
@@ -635,7 +637,7 @@ public class AxisConfiguration extends A
         if (service.isClientSide())
             return;
 
-        for (AxisObserver observer : observersList) {
+        for (AxisObserver observer : observerSet) {
             try {
                 observer.serviceUpdate(event, service);
             } catch (Throwable e) {
@@ -647,7 +649,7 @@ public class AxisConfiguration extends A
 
     public void notifyObservers(AxisEvent event, AxisModule moule) {
 
-        for (AxisObserver anObserversList : observersList) {
+        for (AxisObserver anObserversList : observerSet) {
 
             try {
                 anObserversList.moduleUpdate(event, moule);
@@ -660,7 +662,7 @@ public class AxisConfiguration extends A
 
     public void notifyObservers(AxisEvent event, AxisServiceGroup 
serviceGroup) {
 
-        for (AxisObserver anObserversList : observersList) {
+        for (AxisObserver anObserversList : observerSet) {
 
             try {
                 anObserversList.serviceGroupUpdate(event, serviceGroup);
@@ -1276,8 +1278,9 @@ public class AxisConfiguration extends A
     }
 
     public ArrayList<AxisObserver> getObserversList() {
-       ArrayList<AxisObserver> observers = new ArrayList<AxisObserver>();
-       Collections.copy(observers, observersList);
+       AxisObserver[] array = observerSet.toArray(new 
AxisObserver[observerSet.size()]);
+       ArrayList<AxisObserver> observers = new 
ArrayList<AxisObserver>(array.length);
+       observers.addAll(Arrays.asList(array));
        return observers;
     }
 


Reply via email to