From a3e3001d490254695d0db3693f9a66846d30bf9f Mon Sep 17 00:00:00 2001 From: zab Date: Wed, 14 Nov 2012 21:53:54 +0000 Subject: [PATCH] * Sync fixes to Frequency * Removal of warnings related to generics in StatManager --- core/java/src/net/i2p/stat/Frequency.java | 30 +++++++++------------ core/java/src/net/i2p/stat/StatManager.java | 19 ++++++------- 2 files changed, 21 insertions(+), 28 deletions(-) diff --git a/core/java/src/net/i2p/stat/Frequency.java b/core/java/src/net/i2p/stat/Frequency.java index 9cf04ce2a..50536fa4f 100644 --- a/core/java/src/net/i2p/stat/Frequency.java +++ b/core/java/src/net/i2p/stat/Frequency.java @@ -35,7 +35,7 @@ public class Frequency { * when did the last event occur? * @deprecated unused */ - public long getLastEvent() { + public synchronized long getLastEvent() { return _lastEvent; } @@ -44,7 +44,7 @@ public class Frequency { * as calculated during the last event occurrence? * @return milliseconds; returns period + 1 if no events in previous period */ - public double getAverageInterval() { + public synchronized double getAverageInterval() { return _avgInterval; } @@ -53,7 +53,7 @@ public class Frequency { * @return milliseconds; returns period + 1 if no events in previous period * @deprecated unused */ - public double getMinAverageInterval() { + public synchronized double getMinAverageInterval() { return _minAverageInterval; } @@ -61,45 +61,41 @@ public class Frequency { * Calculate how many events would occur in a period given the current (rolling) average. * Use getStrictAverageInterval() for the real lifetime average. */ - public double getAverageEventsPerPeriod() { - synchronized (this) { - if (_avgInterval > 0) return _period / _avgInterval; - - return 0; - } + public synchronized double getAverageEventsPerPeriod() { + if (_avgInterval > 0) return _period / _avgInterval; + + return 0; } /** * Calculate how many events would occur in a period given the maximum rolling average. * Use getStrictAverageEventsPerPeriod() for the real lifetime average. */ - public double getMaxAverageEventsPerPeriod() { - synchronized (this) { - if (_minAverageInterval > 0 && _minAverageInterval <= _period) return _period / _minAverageInterval; + public synchronized double getMaxAverageEventsPerPeriod() { + if (_minAverageInterval > 0 && _minAverageInterval <= _period) return _period / _minAverageInterval; - return 0; - } + return 0; } /** * Over the lifetime of this stat, without any decay or weighting, what was the average interval between events? (ms) * @return milliseconds; returns Double.MAX_VALUE if no events ever */ - public double getStrictAverageInterval() { + public synchronized double getStrictAverageInterval() { long duration = now() - _start; if ((duration <= 0) || (_count <= 0)) return Double.MAX_VALUE; return duration / (double) _count; } /** using the strict average interval, how many events occur within an average period? */ - public double getStrictAverageEventsPerPeriod() { + public synchronized double getStrictAverageEventsPerPeriod() { double avgInterval = getStrictAverageInterval(); if (avgInterval > 0) return _period / avgInterval; return 0; } /** how many events have occurred within the lifetime of this stat? */ - public long getEventCount() { + public synchronized long getEventCount() { return _count; } diff --git a/core/java/src/net/i2p/stat/StatManager.java b/core/java/src/net/i2p/stat/StatManager.java index b63879c7a..d148bbe30 100644 --- a/core/java/src/net/i2p/stat/StatManager.java +++ b/core/java/src/net/i2p/stat/StatManager.java @@ -10,7 +10,6 @@ import java.util.TreeSet; import java.util.concurrent.ConcurrentHashMap; import net.i2p.I2PAppContext; -import net.i2p.util.Log; /** * Coordinate the management of various frequencies and rates within I2P components, @@ -20,7 +19,6 @@ import net.i2p.util.Log; * */ public class StatManager { - private final Log _log; private final I2PAppContext _context; /** stat name to FrequencyStat */ @@ -47,11 +45,10 @@ public class StatManager { * appropriate application context itself. * */ - public StatManager(I2PAppContext context) { - _log = context.logManager().getLog(StatManager.class); + public StatManager(I2PAppContext context) { _context = context; - _frequencyStats = new ConcurrentHashMap(8); - _rateStats = new ConcurrentHashMap(128); + _frequencyStats = new ConcurrentHashMap(8); + _rateStats = new ConcurrentHashMap(128); if (getStatFilter() != null) _statLog = new BufferedStatLog(context); } @@ -194,11 +191,11 @@ public class StatManager { } public Set getFrequencyNames() { - return new HashSet(_frequencyStats.keySet()); + return new HashSet(_frequencyStats.keySet()); } public Set getRateNames() { - return new HashSet(_rateStats.keySet()); + return new HashSet(_rateStats.keySet()); } /** is the given stat a monitored rate? */ @@ -216,12 +213,12 @@ public class StatManager { * Map is unsorted. */ public Map> getStatsByGroup() { - Map> groups = new HashMap(32); + Map> groups = new HashMap>(32); for (FrequencyStat stat : _frequencyStats.values()) { String gname = stat.getGroupName(); SortedSet names = groups.get(gname); if (names == null) { - names = new TreeSet(); + names = new TreeSet(); groups.put(gname, names); } names.add(stat.getName()); @@ -230,7 +227,7 @@ public class StatManager { String gname = stat.getGroupName(); SortedSet names = groups.get(gname); if (names == null) { - names = new TreeSet(); + names = new TreeSet(); groups.put(gname, names); } names.add(stat.getName());