- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
private static java.util.Hashtable<String, Session> sessions =
new java.util.Hashtable<String, Session>();
...
public static SessionOperations[] getSessions() {
int cnt = sessions.size();
SessionOperations[] res = new SessionOperations[cnt];
java.util.Enumeration<String> e = sessions.keys();
for( int i = 0; i < res.length; i++ ) {
String sid = e.nextElement();
res[i] = sessions.get( sid ).getOperations( sid );
}
return res;
}
Удаление из sessions между получением размера и набора ключей приводит к весьма печальным последствиям...
P.S. В результате в течение трех суток в production не удалялись оставленные сессии (без Logout), sessions отожрал 600М и всё свалилось с OOM.