You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by Radivoj Milin <lo...@prozone.co.yu> on 2005/07/06 13:21:32 UTC

There is a problem in 'SessionManager' implementation

Hi,
 
There is a problem in 'SessionManager' implementation regarding count of expired sessions.
 
In 'org.apache.catalina.session.ManagerBase' class:
 
For each session, method 'ManagerBase.processExpires()' calls ''org.apache.catalina.session.StandardSession.isValid()' method and increments number of expired session (in case that session isn`t valid)
      ............... 
      if (!sessions[i].isValid()) {
                expiredSessions++;
                expireHere++;
            }
       .............
 
But, 'StandardSession.isValid()' method triggers 'StandardSession.expire(true)' method in cases when session should be invalidated. This method also increments number of expired sessions ('SessionManager' attribute).
 
expire(boolean value)
        .......
                int numExpired = manager.getExpiredSessions();
                numExpired++;
                manager.setExpiredSessions(numExpired);
        ........
 
At the end, as result of session invalidation process, number of expired sessions is doubled.
 
Regards,
    Radivoj Milin