larryi      01/03/21 17:44:15

  Modified:    src/facade22/org/apache/tomcat/facade
                        Servlet22Interceptor.java
  Log:
  Now that the session facade is 1-1 associated with the real session, we
  can use that facade when calling valueUnbound() rather than using a
  temporary one.  This patch undoes the last patch since it is no longer
  needed.
  
  Revision  Changes    Path
  1.13      +4 -20     
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.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- Servlet22Interceptor.java 2001/02/28 20:43:58     1.12
  +++ Servlet22Interceptor.java 2001/03/22 01:44:11     1.13
  @@ -173,15 +173,9 @@
            newState==ServerSession.STATE_EXPIRED )   {
            
            // generate "unbould" events when the session is suspended or
  -         // expired :
  -         
  -         // Session facades are managed by the request facades.
  -         // So, the facade returned at this point by the method getFacade() 
  -         // of ServerSession is not valid : it could refer to a session facade
  -         // that is unused, or used by a request facade for another server session.
  -         // That's why we have to manage our own facade.
  -         HttpSessionFacade sessionFacade = new HttpSessionFacade();
  -         
  +         // expired
  +         HttpSession httpSess=(HttpSession)sess.getFacade();
  +
            Vector removed=new Vector();
            Enumeration e = sess.getAttributeNames();
            // announce all values with listener that we'll remove them
  @@ -189,22 +183,12 @@
                String key = (String) e.nextElement();
                Object value = sess.getAttribute(key);
   
  -             sessionFacade.setRealSession(sess);
  -             
                if( value instanceof  HttpSessionBindingListener) {
                    ((HttpSessionBindingListener) value).valueUnbound
  -                     (new HttpSessionBindingEvent(sessionFacade , key));
  +                     (new HttpSessionBindingEvent(httpSess , key));
                    removed.addElement( key );
                }
  -             
  -             // prevents a session crossover
  -             sess.setFacade( null );
            }
  -         
  -         // helps garbage collector
  -         sessionFacade.recycle();
  -         sessionFacade = null;
  -         
            // remove
            e=removed.elements();
            while( e.hasMoreElements() ) {
  
  
  

Reply via email to