mirror of
https://github.com/alibaba/druid.git
synced 2023-03-04 19:17:16 +00:00
bug fixed for WebAppStat.getSessionList.
This commit is contained in:
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user