You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by fh...@apache.org on 2008/08/14 04:55:00 UTC

svn commit: r685752 - in /tomcat: connectors/trunk/util/java/org/apache/tomcat/util/buf/ container/tc5.5.x/catalina/src/share/org/apache/catalina/connector/ container/tc5.5.x/webapps/docs/ current/tc5.5.x/

Author: fhanik
Date: Wed Aug 13 19:54:59 2008
New Revision: 685752

URL: http://svn.apache.org/viewvc?rev=685752&view=rev
Log:
fix 44494

Modified:
    tomcat/connectors/trunk/util/java/org/apache/tomcat/util/buf/B2CConverter.java
    tomcat/connectors/trunk/util/java/org/apache/tomcat/util/buf/CharChunk.java
    tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/connector/InputBuffer.java
    tomcat/container/tc5.5.x/webapps/docs/changelog.xml
    tomcat/current/tc5.5.x/STATUS.txt

Modified: tomcat/connectors/trunk/util/java/org/apache/tomcat/util/buf/B2CConverter.java
URL: http://svn.apache.org/viewvc/tomcat/connectors/trunk/util/java/org/apache/tomcat/util/buf/B2CConverter.java?rev=685752&r1=685751&r2=685752&view=diff
==============================================================================
--- tomcat/connectors/trunk/util/java/org/apache/tomcat/util/buf/B2CConverter.java (original)
+++ tomcat/connectors/trunk/util/java/org/apache/tomcat/util/buf/B2CConverter.java Wed Aug 13 19:54:59 2008
@@ -82,17 +82,12 @@
     {
         // Set the ByteChunk as input to the Intermediate reader
         iis.setByteChunk( bb );
-        convert(cb, limit);
-    }
-
-    private void convert(CharChunk cb, int limit)
-        throws IOException
-    {
         try {
             // read from the reader
-            int count = 0;
+            int bbLengthBeforeRead  = 0;
             while( limit > 0 ) { 
                 int size = limit < BUFFER_SIZE ? limit : BUFFER_SIZE; 
+                bbLengthBeforeRead = bb.getLength();
                 int cnt=conv.read( result, 0, size );
                 if( cnt <= 0 ) {
                     // End of stream ! - we may be in a bad state
@@ -106,7 +101,7 @@
 
                 // XXX go directly
                 cb.append( result, 0, cnt );
-                limit -= cnt;
+                limit = limit - (bbLengthBeforeRead - bb.getLength());
             }
         } catch( IOException ex) {
             if( debug>0)
@@ -222,6 +217,14 @@
     /** Reset the buffer
      */
     public  final void recycle() {
+        try {
+            // Must clear super's buffer.
+            while (ready()) {
+                // InputStreamReader#skip(long) will allocate buffer to skip.
+                read();
+            }
+        } catch(IOException ioe){
+        }
     }
 }
 

Modified: tomcat/connectors/trunk/util/java/org/apache/tomcat/util/buf/CharChunk.java
URL: http://svn.apache.org/viewvc/tomcat/connectors/trunk/util/java/org/apache/tomcat/util/buf/CharChunk.java?rev=685752&r1=685751&r2=685752&view=diff
==============================================================================
--- tomcat/connectors/trunk/util/java/org/apache/tomcat/util/buf/CharChunk.java (original)
+++ tomcat/connectors/trunk/util/java/org/apache/tomcat/util/buf/CharChunk.java Wed Aug 13 19:54:59 2008
@@ -478,7 +478,7 @@
             tmp=new char[newSize];
         }
         
-        System.arraycopy(buff, start, tmp, start, end-start);
+        System.arraycopy(buff, 0, tmp, 0, end);
         buff = tmp;
         tmp = null;
     }

Modified: tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/connector/InputBuffer.java
URL: http://svn.apache.org/viewvc/tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/connector/InputBuffer.java?rev=685752&r1=685751&r2=685752&view=diff
==============================================================================
--- tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/connector/InputBuffer.java (original)
+++ tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/connector/InputBuffer.java Wed Aug 13 19:54:59 2008
@@ -333,8 +333,11 @@
             cb.setOffset(0);
             cb.setEnd(0);
         }
+        int limit = bb.getLength()+cb.getStart();
+        if ( cb.getLimit() < limit )
+            cb.setLimit(limit);
         state = CHAR_STATE;
-        conv.convert(bb, cb, len);
+        conv.convert(bb, cb, bb.getLength());
         bb.setOffset(bb.getEnd());
 
         return cb.getLength();
@@ -441,11 +444,7 @@
                 cb.setOffset(0);
             }
         }
-        int offset = readAheadLimit;
-        if (offset < size) {
-            offset = size;
-        }
-        cb.setLimit(cb.getStart() + offset);
+        cb.setLimit(cb.getStart() + readAheadLimit + size);
         markPos = cb.getStart();
     }
 

Modified: tomcat/container/tc5.5.x/webapps/docs/changelog.xml
URL: http://svn.apache.org/viewvc/tomcat/container/tc5.5.x/webapps/docs/changelog.xml?rev=685752&r1=685751&r2=685752&view=diff
==============================================================================
--- tomcat/container/tc5.5.x/webapps/docs/changelog.xml (original)
+++ tomcat/container/tc5.5.x/webapps/docs/changelog.xml Wed Aug 13 19:54:59 2008
@@ -43,6 +43,9 @@
   <subsection name="Catalina">
     <changelog>
       <fix>
+        <bug>44494</bug>: Backport from 6.0 (rjung)
+      </fix>
+      <fix>
         Add additional checks for URI normalization. (remm)
       </fix>
       <fix>

Modified: tomcat/current/tc5.5.x/STATUS.txt
URL: http://svn.apache.org/viewvc/tomcat/current/tc5.5.x/STATUS.txt?rev=685752&r1=685751&r2=685752&view=diff
==============================================================================
--- tomcat/current/tc5.5.x/STATUS.txt (original)
+++ tomcat/current/tc5.5.x/STATUS.txt Wed Aug 13 19:54:59 2008
@@ -98,14 +98,6 @@
   +1: markt, yoavs
   -1: 
 
-* Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=44494
-  >8k request truncation and various multi-byte issues
-  These patches are Rainer's port
-  https://issues.apache.org/bugzilla/attachment.cgi?id=21872
-  https://issues.apache.org/bugzilla/attachment.cgi?id=21873
-  +1: rjung, markt, fhanik
-  -1: 
-
 * Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=45591
   NPE on start-up failure in some cases. Based on a patch by Matt Passell
   http://svn.apache.org/viewvc?rev=683982&view=rev



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org