You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by jf...@apache.org on 2002/11/26 20:56:10 UTC
cvs commit: jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/session StandardSession.java
jfarcand 2002/11/26 11:56:10
Modified: catalina/src/share/org/apache/catalina/session
StandardSession.java
Log:
Change HttpSessionListener.sessionDestroyed() from notifying after the invalidation to notifying before the invalidation (Servlet 2.4 spec change).
Revision Changes Path
1.6 +23 -23 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.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- StandardSession.java 29 Aug 2002 22:23:38 -0000 1.5
+++ StandardSession.java 26 Nov 2002 19:56:09 -0000 1.6
@@ -611,27 +611,11 @@
* this session?
*/
public void expire(boolean notify) {
-
// Mark this session as "being expired" if needed
if (expiring)
return;
expiring = true;
- setValid(false);
-
- // Remove this session from our manager's active sessions
- if (manager != null)
- manager.remove(this);
-
- // Unbind any objects associated with this session
- String keys[] = keys();
- for (int i = 0; i < keys.length; i++)
- removeAttribute(keys[i], notify);
-
- // Notify interested session event listeners
- if (notify) {
- fireSessionEvent(Session.SESSION_DESTROYED_EVENT, null);
- }
-
+
// Notify interested application event listeners
// FIXME - Assumes we call listeners in reverse order
Context context = (Context) manager.getContainer();
@@ -666,6 +650,21 @@
}
}
}
+ setValid(false);
+
+ // Remove this session from our manager's active sessions
+ if (manager != null)
+ manager.remove(this);
+
+ // Unbind any objects associated with this session
+ String keys[] = keys();
+ for (int i = 0; i < keys.length; i++)
+ removeAttribute(keys[i], notify);
+
+ // Notify interested session event listeners
+ if (notify) {
+ fireSessionEvent(Session.SESSION_DESTROYED_EVENT, null);
+ }
// We have completed expire of this session
expiring = false;
@@ -1516,7 +1515,6 @@
* @param data Event data
*/
public void fireSessionEvent(String type, Object data) {
-
if (listeners.size() < 1)
return;
SessionEvent event = new SessionEvent(this, type, data);
@@ -1524,8 +1522,10 @@
synchronized (listeners) {
list = (SessionListener[]) listeners.toArray(list);
}
- for (int i = 0; i < list.length; i++)
+
+ for (int i = 0; i < list.length; i++){
((SessionListener) list[i]).sessionEvent(event);
+ }
}
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>