remm 2003/08/26 07:18:54 Modified: catalina/src/share/org/apache/catalina/session StandardManager.java StandardSession.java Log: - Revert my previous fix. I think it could cause sessions to not be invalidated properly. - Instead, don't check for validity when activating and passivating. Revision Changes Path 1.13 +6 -8 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/session/StandardManager.java Index: StandardManager.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/session/StandardManager.java,v retrieving revision 1.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 --- StandardManager.java 26 Aug 2003 14:11:04 -0000 1.12 +++ StandardManager.java 26 Aug 2003 14:18:54 -0000 1.13 @@ -449,10 +449,8 @@ StandardSession session = getNewSession(); session.readObjectData(ois); session.setManager(this); - if (session.isValid()) { - sessions.put(session.getId(), session); - session.activate(); - } + sessions.put(session.getId(), session); + session.activate(); } } catch (ClassNotFoundException e) { log.error(sm.getString("standardManager.loading.cnfe", e), e); 1.21 +18 -6 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/session/StandardSession.java Index: StandardSession.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/session/StandardSession.java,v retrieving revision 1.20 retrieving revision 1.21 diff -u -r1.20 -r1.21 --- StandardSession.java 19 Aug 2003 00:49:58 -0000 1.20 +++ StandardSession.java 26 Aug 2003 14:18:54 -0000 1.21 @@ -731,7 +731,7 @@ HttpSessionEvent event = null; String keys[] = keys(); for (int i = 0; i < keys.length; i++) { - Object attribute = getAttribute(keys[i]); + Object attribute = getAttributeInternal(keys[i]); if (attribute instanceof HttpSessionActivationListener) { if (event == null) event = new HttpSessionEvent(this); @@ -753,7 +753,7 @@ HttpSessionEvent event = null; String keys[] = keys(); for (int i = 0; i < keys.length; i++) { - Object attribute = getAttribute(keys[i]); + Object attribute = getAttributeInternal(keys[i]); if (attribute instanceof HttpSessionActivationListener) { if (event == null) event = new HttpSessionEvent(this); @@ -1571,6 +1571,18 @@ String results[] = new String[0]; synchronized (attributes) { return ((String[]) attributes.keySet().toArray(results)); + } + + } + + + /** + * Return the value of an attribute without a check for validity. + */ + private Object getAttributeInternal(String name) { + + synchronized (attributes) { + return (attributes.get(name)); } }
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]