You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@synapse.apache.org by in...@apache.org on 2010/03/17 06:59:52 UTC

svn commit: r924170 - /synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/aspects/statistics/StatisticsCollector.java

Author: indika
Date: Wed Mar 17 05:59:52 2010
New Revision: 924170

URL: http://svn.apache.org/viewvc?rev=924170&view=rev
Log:
fix an concurrent issue with StatisticsCollector 

Modified:
    synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/aspects/statistics/StatisticsCollector.java

Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/aspects/statistics/StatisticsCollector.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/aspects/statistics/StatisticsCollector.java?rev=924170&r1=924169&r2=924170&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/aspects/statistics/StatisticsCollector.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/aspects/statistics/StatisticsCollector.java Wed Mar 17 05:59:52 2010
@@ -25,6 +25,7 @@ import org.apache.synapse.commons.jmx.MB
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.concurrent.ConcurrentLinkedQueue;
 
 /**
  * Collects statistics and provides those collected data
@@ -34,7 +35,8 @@ public class StatisticsCollector {
 
     private static final Log log = LogFactory.getLog(StatisticsCollector.class);
 
-    private final List<StatisticsRecord> statisticsCollection = new ArrayList<StatisticsRecord>();
+    private final ConcurrentLinkedQueue<StatisticsRecord> statisticsCollection =
+            new ConcurrentLinkedQueue<StatisticsRecord>();
 
     public StatisticsCollector() {
         MBeanRegistrar.getInstance().registerMBean(new StatisticsView(this),
@@ -47,7 +49,7 @@ public class StatisticsCollector {
      * @param statisticsRecord statistics record instance
      */
     public void collect(StatisticsRecord statisticsRecord) {
-        this.statisticsCollection.add(statisticsRecord);
+        this.statisticsCollection.offer(statisticsRecord);
     }
 
     /**