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();