public Integer getSessionCount() throws IOException { Integer res = null; { synchronized (lookupSessionById) { res = lookupSessionById.size(); } } return res; }
public static synchronized void sessionCreated(HttpSessionEvent ev) { HttpSession httpSession = ev.getSession(); String id = httpSession.getId(); // Remember HTTP-session: { lookupHttpSessionById.put(id, httpSession); } AbstractSession session = null; synchronized (lookupSessionById) { session = lookupSessionById.get(id); } if (session == null) { Principal userPrincipal = null; Date timeCreation = new Date(httpSession.getCreationTime()); Date timeLastAccess = new Date(httpSession.getLastAccessedTime()); List<String> urisForLastRequests = null; Properties properties = null; session = new DefaultSession( id, userPrincipal, timeCreation, timeLastAccess, urisForLastRequests, properties); synchronized (lookupSessionById) { lookupSessionById.put(id, session); // Update 'sessionCountMax': { int sessionCount = lookupSessionById.size(); if (sessionCount > sessionCountMax) { sessionCountMax = sessionCount; sessionCountMaxTime = System.currentTimeMillis(); } } } } }
public Properties getProperties() throws IOException { Properties res = null; { res = super.getProperties(); if (res == null) { res = new Properties(); } Integer sessionCount = null; Integer sessionCountMax = null; Long sessionCountMaxTime = null; synchronized (lookupSessionById) { sessionCount = lookupSessionById.size(); sessionCountMax = this.sessionCountMax; sessionCountMaxTime = this.sessionCountMaxTime; } if (sessionCount != null) { res.setProperty("session.count", Integer.toString(sessionCount)); } if (sessionCountMax != null) { res.setProperty("session.count-max", Integer.toString(sessionCountMax)); } if (sessionCountMaxTime != null) { String sessionCountMaxTimeText = ApplicationConstants.FORMAT_DATE.format(sessionCountMaxTime); res.setProperty("session.count-max.timestamp", sessionCountMaxTimeText); } } return res; }