keith       2005/02/09 21:25:42

  Modified:    http11/src/java/org/apache/coyote/http11/filters Tag:
                        TOMCAT_5_0 IdentityOutputFilter.java
               coyote/src/java/org/apache/coyote Tag: TOMCAT_5_0
                        Response.java
               util/java/org/apache/tomcat/util/buf Tag: TOMCAT_5_0
                        MessageBytes.java
               http11/src/java/org/apache/coyote/http11 Tag: TOMCAT_5_0
                        Http11Processor.java
  Log:
  Port fix from Mark Thomas for better Content-Length handling into the _5_0 
branch
  
  PR: 32585
  
  Revision  Changes    Path
  No                   revision
  No                   revision
  1.7.2.1   +1 -1      
jakarta-tomcat-connectors/http11/src/java/org/apache/coyote/http11/filters/IdentityOutputFilter.java
  
  Index: IdentityOutputFilter.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/http11/src/java/org/apache/coyote/http11/filters/IdentityOutputFilter.java,v
  retrieving revision 1.7
  retrieving revision 1.7.2.1
  diff -u -r1.7 -r1.7.2.1
  --- IdentityOutputFilter.java 24 Feb 2004 08:50:55 -0000      1.7
  +++ IdentityOutputFilter.java 10 Feb 2005 05:25:41 -0000      1.7.2.1
  @@ -141,7 +141,7 @@
        * after the response header processing is complete.
        */
       public void setResponse(Response response) {
  -        contentLength = response.getContentLength();
  +        contentLength = response.getContentLengthLong();
           remaining = contentLength;
       }
   
  
  
  
  No                   revision
  No                   revision
  1.32.2.1  +11 -2     
jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/Response.java
  
  Index: Response.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/Response.java,v
  retrieving revision 1.32
  retrieving revision 1.32.2.1
  diff -u -r1.32 -r1.32.2.1
  --- Response.java     24 Feb 2004 08:54:29 -0000      1.32
  +++ Response.java     10 Feb 2005 05:25:41 -0000      1.32.2.1
  @@ -100,7 +100,7 @@
       protected String contentType = null;
       protected String contentLanguage = null;
       protected String characterEncoding = 
Constants.DEFAULT_CHARACTER_ENCODING;
  -    protected int contentLength = -1;
  +    protected long contentLength = -1;
       private Locale locale = DEFAULT_LOCALE;
   
       // General informations
  @@ -529,7 +529,16 @@
       }
   
       public int getContentLength() {
  -        return contentLength;
  +        long length = getContentLengthLong();
  +        
  +        if (length < Integer.MAX_VALUE) {
  +            return (int) length;
  +        }
  +        return -1;
  +    }
  +    
  +    public long getContentLengthLong() {
  +          return contentLength;
       }
   
   
  
  
  
  No                   revision
  No                   revision
  1.14.2.2  +42 -0     
jakarta-tomcat-connectors/util/java/org/apache/tomcat/util/buf/MessageBytes.java
  
  Index: MessageBytes.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/util/java/org/apache/tomcat/util/buf/MessageBytes.java,v
  retrieving revision 1.14.2.1
  retrieving revision 1.14.2.2
  diff -u -r1.14.2.1 -r1.14.2.2
  --- MessageBytes.java 25 Aug 2004 20:44:15 -0000      1.14.2.1
  +++ MessageBytes.java 10 Feb 2005 05:25:41 -0000      1.14.2.2
  @@ -579,6 +579,48 @@
           type=T_BYTES;
       }
   
  +    /** Set the buffer to the representation of an long
  +     */
  +    public void setLong(long l) {
  +        byteC.allocate(32, 64);
  +        long current = l;
  +        byte[] buf = byteC.getBuffer();
  +        int start = 0;
  +        int end = 0;
  +        if (l == 0) {
  +            buf[end++] = (byte) '0';
  +        }
  +        if (l < 0) {
  +            current = -l;
  +            buf[end++] = (byte) '-';
  +        }
  +        while (current > 0) {
  +            int digit = (int) (current % 10);
  +            current = current / 10;
  +            buf[end++] = HexUtils.HEX[digit];
  +        }
  +        byteC.setOffset(0);
  +        byteC.setEnd(end);
  +        // Inverting buffer
  +        end--;
  +        if (l < 0) {
  +            start++;
  +        }
  +        while (end > start) {
  +            byte temp = buf[start];
  +            buf[start] = buf[end];
  +            buf[end] = temp;
  +            start++;
  +            end--;
  +        }
  +        longValue=l;
  +        hasStrValue=false;
  +        hasHashCode=false;
  +        hasIntValue=false;
  +        hasLongValue=true;
  +        hasDateValue=false; 
  +        type=T_BYTES;
  +    }    
   
       /**
        *  @deprecated The buffer are general purpose, caching for headers 
should
  
  
  
  No                   revision
  No                   revision
  1.100.2.3 +2 -2      
jakarta-tomcat-connectors/http11/src/java/org/apache/coyote/http11/Http11Processor.java
  
  Index: Http11Processor.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/http11/src/java/org/apache/coyote/http11/Http11Processor.java,v
  retrieving revision 1.100.2.2
  retrieving revision 1.100.2.3
  diff -u -r1.100.2.2 -r1.100.2.3
  --- Http11Processor.java      12 Sep 2004 20:39:12 -0000      1.100.2.2
  +++ Http11Processor.java      10 Feb 2005 05:25:41 -0000      1.100.2.3
  @@ -1461,10 +1461,10 @@
               }
           }
   
  -        int contentLength = response.getContentLength();
  +        long contentLength = response.getContentLengthLong();
           if (contentLength != -1) {
               response.getMimeHeaders().setValue("Content-Length")
  -                .setInt(contentLength);
  +                .setLong(contentLength);
               outputBuffer.addActiveFilter
                   (outputFilters[Constants.IDENTITY_FILTER]);
               contentDelimitation = true;
  
  
  

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

Reply via email to