nacho       01/09/22 17:21:40

  Modified:    src/facade22/org/apache/tomcat/facade HttpSessionFacade.java
                        Servlet22Interceptor.java
  Log:
  Bug#3572
  
  Exceptions during binding events make session handling  not work
  
  Reported by michael at x-cellent.com
  
  Revision  Changes    Path
  1.15      +12 -4     
jakarta-tomcat/src/facade22/org/apache/tomcat/facade/HttpSessionFacade.java
  
  Index: HttpSessionFacade.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat/src/facade22/org/apache/tomcat/facade/HttpSessionFacade.java,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- HttpSessionFacade.java    2001/09/17 15:09:33     1.14
  +++ HttpSessionFacade.java    2001/09/23 00:21:40     1.15
  @@ -190,8 +190,12 @@
                if (oldValue!=null) {
                    removeAttribute(name);
                }
  -             ((HttpSessionBindingListener) value).valueBound
  -                 (new HttpSessionBindingEvent( this, name));
  +                try{
  +                    ((HttpSessionBindingListener) value).valueBound
  +                        (new HttpSessionBindingEvent( this, name));
  +                } catch ( Throwable th ) {
  +                    log( "Exception during bound event", th );
  +                }
                realSession.setAttribute( name, value );
            }
        } else {
  @@ -273,8 +277,12 @@
                object=realSession.getAttribute( name );
                if( object != null ) {
                    realSession.removeAttribute(name);
  -                 ((HttpSessionBindingListener) object).valueUnbound
  -                     (new HttpSessionBindingEvent( this, name));
  +                    try {
  +                        ((HttpSessionBindingListener) object).valueUnbound
  +                            (new HttpSessionBindingEvent( this, name));
  +                    } catch ( Throwable th ) {
  +                        log("Exception during unbound event", th );
  +                    }
                }
            }
        } else {
  
  
  
  1.18      +6 -2      
jakarta-tomcat/src/facade22/org/apache/tomcat/facade/Servlet22Interceptor.java
  
  Index: Servlet22Interceptor.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat/src/facade22/org/apache/tomcat/facade/Servlet22Interceptor.java,v
  retrieving revision 1.17
  retrieving revision 1.18
  diff -u -r1.17 -r1.18
  --- Servlet22Interceptor.java 2001/09/07 04:35:27     1.17
  +++ Servlet22Interceptor.java 2001/09/23 00:21:40     1.18
  @@ -190,8 +190,12 @@
                if( value instanceof  HttpSessionBindingListener) {
                    if( debug > 0 )
                        log("valueUnbound " + sess.getId() + " " + key );
  -                 ((HttpSessionBindingListener) value).valueUnbound
  -                     (new HttpSessionBindingEvent(httpSess , key));
  +                    try {
  +                        ((HttpSessionBindingListener) value).valueUnbound
  +                            (new HttpSessionBindingEvent(httpSess , key));
  +                    } catch ( Throwable th ) {
  +                        log("Exception during unbound", th ); 
  +                    }
                    if( removed==null) removed=new Vector();
                    removed.addElement( key );
                }
  
  
  

Reply via email to