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(" ]")