22
33import java .text .SimpleDateFormat ;
44import java .util .Date ;
5- import java .util .HashMap ;
65import java .util .Map ;
76import java .util .Map .Entry ;
87import java .util .Set ;
8+ import java .util .concurrent .ConcurrentHashMap ;
9+ import java .util .concurrent .ConcurrentMap ;
910
1011import org .springframework .stereotype .Service ;
1112
1213@ Service
1314public class MetricService implements IMetricService {
1415
15- private Map <String , HashMap <Integer , Integer >> metricMap ;
16- private Map <Integer , Integer > statusMetric ;
17- private Map <String , HashMap <Integer , Integer >> timeMap ;
16+ private ConcurrentMap <String , ConcurrentHashMap <Integer , Integer >> metricMap ;
17+ private ConcurrentMap <Integer , Integer > statusMetric ;
18+ private ConcurrentMap <String , ConcurrentHashMap <Integer , Integer >> timeMap ;
1819 private static final SimpleDateFormat dateFormat = new SimpleDateFormat ("yyyy-MM-dd HH:mm" );
1920
2021 public MetricService () {
2122 super ();
22- metricMap = new HashMap <String , HashMap <Integer , Integer >>();
23- statusMetric = new HashMap <Integer , Integer >();
24- timeMap = new HashMap <String , HashMap <Integer , Integer >>();
23+ metricMap = new ConcurrentHashMap <String , ConcurrentHashMap <Integer , Integer >>();
24+ statusMetric = new ConcurrentHashMap <Integer , Integer >();
25+ timeMap = new ConcurrentHashMap <String , ConcurrentHashMap <Integer , Integer >>();
2526 }
2627
2728 // API
@@ -58,8 +59,8 @@ public Object[][] getGraphData() {
5859 j ++;
5960 }
6061 int i = 1 ;
61- Map <Integer , Integer > tempMap ;
62- for (final Entry <String , HashMap <Integer , Integer >> entry : timeMap .entrySet ()) {
62+ ConcurrentMap <Integer , Integer > tempMap ;
63+ for (final Entry <String , ConcurrentHashMap <Integer , Integer >> entry : timeMap .entrySet ()) {
6364 result [i ][0 ] = entry .getKey ();
6465 tempMap = entry .getValue ();
6566 for (j = 1 ; j < colCount ; j ++) {
@@ -77,9 +78,9 @@ public Object[][] getGraphData() {
7778 // NON-API
7879
7980 private void increaseMainMetric (final String request , final int status ) {
80- HashMap <Integer , Integer > statusMap = metricMap .get (request );
81+ ConcurrentHashMap <Integer , Integer > statusMap = metricMap .get (request );
8182 if (statusMap == null ) {
82- statusMap = new HashMap <Integer , Integer >();
83+ statusMap = new ConcurrentHashMap <Integer , Integer >();
8384 }
8485
8586 Integer count = statusMap .get (status );
@@ -103,9 +104,9 @@ private void increaseStatusMetric(final int status) {
103104
104105 private void updateTimeMap (final int status ) {
105106 final String time = dateFormat .format (new Date ());
106- HashMap <Integer , Integer > statusMap = timeMap .get (time );
107+ ConcurrentHashMap <Integer , Integer > statusMap = timeMap .get (time );
107108 if (statusMap == null ) {
108- statusMap = new HashMap <Integer , Integer >();
109+ statusMap = new ConcurrentHashMap <Integer , Integer >();
109110 }
110111
111112 Integer count = statusMap .get (status );
0 commit comments