markt 2004/02/12 12:54:21 Modified: catalina/src/share/org/apache/catalina/session LocalStrings.properties StandardSession.java Log: Fix bug 14283. Catch and log exceptions in listeners. Reported by Eddie Ruvinsky. Ported from TC4. Revision Changes Path 1.5 +1 -0 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/session/LocalStrings.properties Index: LocalStrings.properties =================================================================== RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/session/LocalStrings.properties,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- LocalStrings.properties 9 Jan 2004 11:35:08 -0000 1.4 +++ LocalStrings.properties 12 Feb 2004 20:54:21 -0000 1.5 @@ -35,6 +35,7 @@ standardManager.managerLoad=Exception loading sessions from persistent storage standardManager.managerUnload=Exception unloading sessions to persistent storage standardSession.attributeEvent=Session attribute event listener threw exception +standardSession.bindingEvent=Session binding event listener threw exception standardSession.invalidate.ise=invalidate: Session already invalidated standardSession.isNew.ise=isNew: Session already invalidated standardSession.getAttribute.ise=getAttribute: Session already invalidated 1.34 +19 -11 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.33 retrieving revision 1.34 diff -u -r1.33 -r1.34 --- StandardSession.java 26 Jan 2004 19:47:48 -0000 1.33 +++ StandardSession.java 12 Feb 2004 20:54:21 -0000 1.34 @@ -633,7 +633,7 @@ this.lastAccessedTime = this.thisAccessedTime; this.thisAccessedTime = System.currentTimeMillis(); - evaluateIfValid(); + evaluateIfValid(); accessCount++; @@ -1256,7 +1256,11 @@ // Call the valueBound() method if necessary if (value instanceof HttpSessionBindingListener) { event = new HttpSessionBindingEvent(this, name, value); - ((HttpSessionBindingListener) value).valueBound(event); + try { + ((HttpSessionBindingListener) value).valueBound(event); + } catch (Throwable t){ + log(sm.getString("standardSession.bindingEvent"), t); + } } // Replace or add this attribute @@ -1265,8 +1269,12 @@ // Call the valueUnbound() method if necessary if ((unbound != null) && (unbound instanceof HttpSessionBindingListener)) { - ((HttpSessionBindingListener) unbound).valueUnbound - (new HttpSessionBindingEvent(this, name)); + try { + ((HttpSessionBindingListener) unbound).valueUnbound + (new HttpSessionBindingEvent(this, name)); + } catch (Throwable t) { + log(sm.getString("standardSession.bindingEvent"), t); + } } // Notify interested application event listeners @@ -1454,9 +1462,9 @@ protected void evaluateIfValid() { /* - * If this session has expired or is in the process of expiring or - * will never expire, return - */ + * If this session has expired or is in the process of expiring or + * will never expire, return + */ if (!this.isValid || expiring || maxInactiveInterval < 0) return;
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]