bug fixed for WebAppStat.getSessionList.

This commit is contained in:
wenshao
2018-09-12 20:44:21 +08:00
parent 03845a41be
commit c4e3844056
@@ -28,6 +28,7 @@ import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicLong;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReadWriteLock;
import java.util.concurrent.locks.ReentrantReadWriteLock;
@@ -500,20 +501,26 @@ public class WebAppStat {
}
public List<Map<String, Object>> getSessionStatDataList() {
List<Map<String, Object>> sessionStatDataList = new ArrayList<Map<String, Object>>(this.sessionStatMap.size());
for (WebSessionStat sessionStat : Collections.unmodifiableCollection(this.sessionStatMap.values())) {
Map<String, Object> sessionStatData = sessionStat.getStatData();
Lock lock = sessionStatLock.readLock();
lock.lock();
try {
List<Map<String, Object>> sessionStatDataList = new ArrayList<Map<String, Object>>(this.sessionStatMap.size());
for (WebSessionStat sessionStat : this.sessionStatMap.values()) {
Map<String, Object> sessionStatData = sessionStat.getStatData();
int runningCount = ((Number) sessionStatData.get("RunningCount")).intValue();
long requestCount = (Long) sessionStatData.get("RequestCount");
int runningCount = ((Number) sessionStatData.get("RunningCount")).intValue();
long requestCount = (Long) sessionStatData.get("RequestCount");
if (runningCount == 0 && requestCount == 0) {
continue;
if (runningCount == 0 && requestCount == 0) {
continue;
}
sessionStatDataList.add(sessionStatData);
}
sessionStatDataList.add(sessionStatData);
return sessionStatDataList;
} finally {
lock.unlock();
}
return sessionStatDataList;
}
public void computeUserAgent(String userAgent) {