Author: hiranya
Date: Fri Jul 19 22:32:40 2013
New Revision: 1505057

URL: http://svn.apache.org/r1505057
Log:
Fixing SYNAPSE-853 - Concurrency issue in endpoint stat collection. Used a 
ConcurrentLinkedQueue instead of the ArrayList to collect stat logs in a thread 
safe manner.

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

Modified: 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/aspects/statistics/StatisticsRecord.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/aspects/statistics/StatisticsRecord.java?rev=1505057&r1=1505056&r2=1505057&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/aspects/statistics/StatisticsRecord.java
 (original)
+++ 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/aspects/statistics/StatisticsRecord.java
 Fri Jul 19 22:32:40 2013
@@ -23,6 +23,8 @@ import org.apache.synapse.aspects.Compon
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
+import java.util.Queue;
+import java.util.concurrent.ConcurrentLinkedQueue;
 
 /**
  * Holds a record for statistics for current message
@@ -31,7 +33,7 @@ import java.util.List;
 public class StatisticsRecord {
 
     private String id;
-    private final List<StatisticsLog> statisticsLogs = new 
ArrayList<StatisticsLog>();
+    private final Queue<StatisticsLog> statisticsLogs = new 
ConcurrentLinkedQueue<StatisticsLog>();
     private String clientIP;
     private String clientHost;
     private ComponentType owner;
@@ -118,7 +120,7 @@ public class StatisticsRecord {
     }
 
     public String toString() {
-        return new StringBuffer()
+        return new StringBuilder()
                 .append("[Message id : ").append(id).append(" ]")
                 .append("[Remote  IP : ").append(clientIP).append(" ]")
                 .append("[Remote host : ").append(clientHost).append(" ]")


Reply via email to