remm        01/11/27 08:22:47

  Modified:    catalina/src/share/org/apache/catalina/connector/http
                        HttpResponseStream.java
  Log:
  - Add a generic mechanism to swallow the content when using HEAD.
    Note: The problem was only present with error reports, as the default servlet
    properly handled HEAD (it will continue to be that way, since it's obviously
    more efficient).
    Bugzilla: 5126
  
  Revision  Changes    Path
  1.11      +30 -3     
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http/HttpResponseStream.java
  
  Index: HttpResponseStream.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http/HttpResponseStream.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- HttpResponseStream.java   2001/11/01 17:59:45     1.10
  +++ HttpResponseStream.java   2001/11/27 16:22:47     1.11
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http/HttpResponseStream.java,v
 1.10 2001/11/01 17:59:45 remm Exp $
  - * $Revision: 1.10 $
  - * $Date: 2001/11/01 17:59:45 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/http/HttpResponseStream.java,v
 1.11 2001/11/27 16:22:47 remm Exp $
  + * $Revision: 1.11 $
  + * $Date: 2001/11/27 16:22:47 $
    *
    * ====================================================================
    *
  @@ -66,6 +66,7 @@
   
   import java.io.IOException;
   import javax.servlet.http.HttpServletResponse;
  +import javax.servlet.http.HttpServletRequest;
   import org.apache.catalina.Response;
   import org.apache.catalina.connector.ResponseStream;
   
  @@ -100,6 +101,7 @@
   
           super(response);
           checkChunking(response);
  +        checkHead(response);
   
       }
   
  @@ -119,6 +121,12 @@
       private boolean writingChunk;
   
   
  +    /**
  +     * True if no content should be written.
  +     */
  +    private boolean writeContent;
  +
  +
       // -------------------------------------------- ServletOutputStream Methods
   
   
  @@ -135,6 +143,9 @@
           if (suspended)
               return;
   
  +        if (!writeContent)
  +            return;
  +
           if (useChunking && !writingChunk) {
               writingChunk = true;
               try {
  @@ -160,6 +171,9 @@
           if (suspended)
               return;
   
  +        if (!writeContent)
  +            return;
  +
           if (useChunking && !writingChunk) {
               if (len > 0) {
                   writingChunk = true;
  @@ -188,6 +202,9 @@
               throw new IOException
                   (sm.getString("responseStream.suspended"));
   
  +        if (!writeContent)
  +            return;
  +
           if (useChunking) {
               // Write the final chunk.
               writingChunk = true;
  @@ -227,6 +244,16 @@
           } else if (response.isChunkingAllowed()) {
               response.removeHeader("Transfer-Encoding", "chunked");
           }
  +    }
  +
  +
  +    protected void checkHead(HttpResponseImpl response) {
  +        HttpServletRequest servletRequest = 
  +            (HttpServletRequest) response.getRequest();
  +        if (servletRequest.getMethod().equals("HEAD"))
  +            writeContent = false;
  +        else
  +            writeContent = true;
       }
   
   
  
  
  

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to