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...@apache.org on 2001/04/26 19:41:08 UTC

cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector HttpRequestBase.java LocalStrings.properties

craigmcc    01/04/26 10:41:08

  Modified:    catalina/src/share/org/apache/catalina/connector
                        HttpRequestBase.java LocalStrings.properties
  Log:
  [PFD2-Javadocs]
  
  If a servlet calls request.getSession() true with no current session, and
  the response has already been committed, and we are using cookies for
  session id tracking, throw IllegalStateException.  This is because the
  headers and cookies have already been sent, so the client would never find
  out about the newly created session.
  
  Revision  Changes    Path
  1.21      +12 -5     jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/HttpRequestBase.java
  
  Index: HttpRequestBase.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/HttpRequestBase.java,v
  retrieving revision 1.20
  retrieving revision 1.21
  diff -u -r1.20 -r1.21
  --- HttpRequestBase.java	2001/04/25 21:39:15	1.20
  +++ HttpRequestBase.java	2001/04/26 17:41:07	1.21
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/HttpRequestBase.java,v 1.20 2001/04/25 21:39:15 craigmcc Exp $
  - * $Revision: 1.20 $
  - * $Date: 2001/04/25 21:39:15 $
  + * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/HttpRequestBase.java,v 1.21 2001/04/26 17:41:07 craigmcc Exp $
  + * $Revision: 1.21 $
  + * $Date: 2001/04/26 17:41:07 $
    *
    * ====================================================================
    *
  @@ -100,7 +100,7 @@
    * be implemented.
    *
    * @author Craig R. McClanahan
  - * @version $Revision: 1.20 $ $Date: 2001/04/25 21:39:15 $
  + * @version $Revision: 1.21 $ $Date: 2001/04/26 17:41:07 $
    */
   
   public class HttpRequestBase
  @@ -1048,9 +1048,16 @@
   	    }
   	}
   
  -	// Create a new session if requested
  +	// Create a new session if requested and the response is not committed
   	if (!create)
   	    return (null);
  +        if ((context != null) && (response != null) &&
  +            context.getCookies() &&
  +            response.getResponse().isCommitted()) {
  +            throw new IllegalStateException
  +              (sm.getString("httpRequestBase.createCommitted"));
  +        }
  +
   	session = manager.createSession();
   	if (session != null)
   	    return (session.getSession());
  
  
  
  1.4       +1 -0      jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/LocalStrings.properties
  
  Index: LocalStrings.properties
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/LocalStrings.properties,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- LocalStrings.properties	2000/10/16 22:44:16	1.3
  +++ LocalStrings.properties	2001/04/26 17:41:07	1.4
  @@ -1,3 +1,4 @@
  +httpRequestBase.createCommitted=Cannot create a session after the response has been committed
   httpResponseBase.sendError.ise=Cannot call sendError() after the response has been committed
   httpResponseBase.sendRedirect.ise=Cannot call sendRedirect() after the response has been committed
   requestBase.getInputStream.ise=getReader() has already been called for this request