Index: StandardManager.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/session/StandardManager.java,v retrieving revision 1.28 diff -u -r1.28 StandardManager.java --- StandardManager.java 7 Feb 2005 21:56:32 -0000 1.28 +++ StandardManager.java 29 Mar 2005 14:38:21 -0000 @@ -556,6 +556,8 @@ session.expire(false); } catch (Throwable t) { ; + } finally { + session.recycle(); } } @@ -670,12 +672,16 @@ Session sessions[] = findSessions(); for (int i = 0; i < sessions.length; i++) { StandardSession session = (StandardSession) sessions[i]; - if (!session.isValid()) - continue; try { - session.expire(); + if (session.isValid()) { + session.expire(); + } } catch (Throwable t) { ; + } finally { + // Measure against memory leaking if references to the session + // object are kept in a shared field somewhere + session.recycle(); } }