You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by cr...@locus.apache.org on 2000/08/18 21:42:38 UTC
cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/session StandardSession.java
craigmcc 00/08/18 12:42:25
Modified: catalina/src/share/org/apache/catalina/session
StandardSession.java
Log:
Oops, forgot to support "sessionCreated()" and "sessionDestroyed()"
application events. These events are now sent to the registered listeners
that implement HttpSessionListener.
Revision Changes Path
1.3 +48 -4 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/session/StandardSession.java
Index: StandardSession.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/session/StandardSession.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- StandardSession.java 2000/08/17 18:41:35 1.2
+++ StandardSession.java 2000/08/18 19:42:19 1.3
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/session/StandardSession.java,v 1.2 2000/08/17 18:41:35 craigmcc Exp $
- * $Revision: 1.2 $
- * $Date: 2000/08/17 18:41:35 $
+ * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/session/StandardSession.java,v 1.3 2000/08/18 19:42:19 craigmcc Exp $
+ * $Revision: 1.3 $
+ * $Date: 2000/08/18 19:42:19 $
*
* ====================================================================
*
@@ -81,6 +81,8 @@
import javax.servlet.http.HttpSessionBindingEvent;
import javax.servlet.http.HttpSessionBindingListener;
import javax.servlet.http.HttpSessionContext;
+import javax.servlet.http.HttpSessionEvent;
+import javax.servlet.http.HttpSessionListener;
import org.apache.catalina.Context;
import org.apache.catalina.Manager;
import org.apache.catalina.Session;
@@ -106,7 +108,7 @@
* @author Craig R. McClanahan
* @author Sean Legassick
* @author <a href="mailto:jon@latchkey.com">Jon S. Stevens</a>
- * @version $Revision: 1.2 $ $Date: 2000/08/17 18:41:35 $
+ * @version $Revision: 1.3 $ $Date: 2000/08/18 19:42:19 $
*/
final class StandardSession
@@ -276,6 +278,26 @@
if ((manager != null) && (manager instanceof ManagerBase))
((ManagerBase) manager).add(this);
+ // Notify interested application event listeners
+ Context context = (Context) manager.getContainer();
+ Object listeners[] = context.getApplicationListeners();
+ if (listeners != null) {
+ HttpSessionEvent event =
+ new HttpSessionEvent(getSession());
+ for (int i = 0; i < listeners.length; i++) {
+ if (!(listeners[i] instanceof HttpSessionListener))
+ continue;
+ try {
+ HttpSessionListener listener =
+ (HttpSessionListener) listeners[i];
+ listener.sessionCreated(event);
+ } catch (Throwable t) {
+ // FIXME - should we do anything besides log these?
+ log(sm.getString("standardSession.sessionEvent"), t);
+ }
+ }
+ }
+
}
@@ -435,6 +457,28 @@
String keys[] = keys();
for (int i = 0; i < keys.length; i++)
removeAttribute(keys[i]);
+
+ // Notify interested application event listeners
+ // FIXME - Assumes we call listeners in reverse order
+ Context context = (Context) manager.getContainer();
+ Object listeners[] = context.getApplicationListeners();
+ if (listeners != null) {
+ HttpSessionEvent event =
+ new HttpSessionEvent(getSession());
+ for (int i = 0; i < listeners.length; i++) {
+ int j = (listeners.length - 1) - i;
+ if (!(listeners[j] instanceof HttpSessionListener))
+ continue;
+ try {
+ HttpSessionListener listener =
+ (HttpSessionListener) listeners[j];
+ listener.sessionDestroyed(event);
+ } catch (Throwable t) {
+ // FIXME - should we do anything besides log these?
+ log(sm.getString("standardSession.sessionEvent"), t);
+ }
+ }
+ }
// Mark this session as invalid
setValid(false);