You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sirona.apache.org by rm...@apache.org on 2013/11/19 18:03:30 UTC

svn commit: r1543500 - in /incubator/sirona/trunk/core/src/main/java/org/apache/sirona: counters/DefaultCounter.java store/counter/InMemoryCounterDataStore.java

Author: rmannibucau
Date: Tue Nov 19 17:03:30 2013
New Revision: 1543500

URL: http://svn.apache.org/r1543500
Log:
thread safety

Modified:
    incubator/sirona/trunk/core/src/main/java/org/apache/sirona/counters/DefaultCounter.java
    incubator/sirona/trunk/core/src/main/java/org/apache/sirona/store/counter/InMemoryCounterDataStore.java

Modified: incubator/sirona/trunk/core/src/main/java/org/apache/sirona/counters/DefaultCounter.java
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/core/src/main/java/org/apache/sirona/counters/DefaultCounter.java?rev=1543500&r1=1543499&r2=1543500&view=diff
==============================================================================
--- incubator/sirona/trunk/core/src/main/java/org/apache/sirona/counters/DefaultCounter.java (original)
+++ incubator/sirona/trunk/core/src/main/java/org/apache/sirona/counters/DefaultCounter.java Tue Nov 19 17:03:30 2013
@@ -16,6 +16,7 @@
  */
 package org.apache.sirona.counters;
 
+import org.apache.commons.math3.stat.descriptive.StatisticalSummary;
 import org.apache.commons.math3.stat.descriptive.SummaryStatistics;
 import org.apache.sirona.store.counter.CounterDataStore;
 
@@ -171,8 +172,14 @@ public class DefaultCounter implements C
         }
     }
 
-    public SummaryStatistics getStatistics() {
-        return statistics;
+    public StatisticalSummary getStatistics() {
+        final Lock rl = lock.readLock();
+        rl.lock();
+        try {
+            return statistics.copy();
+        } finally {
+            rl.unlock();
+        }
     }
 
     public ReadWriteLock getLock() {

Modified: incubator/sirona/trunk/core/src/main/java/org/apache/sirona/store/counter/InMemoryCounterDataStore.java
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/core/src/main/java/org/apache/sirona/store/counter/InMemoryCounterDataStore.java?rev=1543500&r1=1543499&r2=1543500&view=diff
==============================================================================
--- incubator/sirona/trunk/core/src/main/java/org/apache/sirona/store/counter/InMemoryCounterDataStore.java (original)
+++ incubator/sirona/trunk/core/src/main/java/org/apache/sirona/store/counter/InMemoryCounterDataStore.java Tue Nov 19 17:03:30 2013
@@ -16,7 +16,7 @@
  */
 package org.apache.sirona.store.counter;
 
-import org.apache.commons.math3.stat.descriptive.SummaryStatistics;
+import org.apache.commons.math3.stat.descriptive.StatisticalSummary;
 import org.apache.sirona.configuration.Configuration;
 import org.apache.sirona.configuration.ioc.Destroying;
 import org.apache.sirona.counters.Counter;
@@ -202,7 +202,7 @@ public class InMemoryCounterDataStore im
                 final Lock lock = defaultCounter.getLock().writeLock();
                 lock.lock();
                 try {
-                    final SummaryStatistics statistics = defaultCounter.getStatistics();
+                    final StatisticalSummary statistics = defaultCounter.getStatistics();
                     max = statistics.getMax();
                     sum = statistics.getSum();
                     hits = statistics.getN();