Author: billbarker
Date: Sun Aug 26 20:35:52 2007
New Revision: 569969

URL: http://svn.apache.org/viewvc?rev=569969&view=rev
Log:
Use char counts and callbacks for determining marks.  

This will now read exactly to the end of the mark if over the default 8Kb, and 
the reset it on the next read over the mark.

Modified:
    
tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/connector/InputBuffer.java

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=569969&r1=569968&r2=569969&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
 Sun Aug 26 20:35:52 2007
@@ -46,7 +46,6 @@
 
     // -------------------------------------------------------------- Constants
 
-
     public static final String DEFAULT_ENCODING = 
         org.apache.coyote.Constants.DEFAULT_CHARACTER_ENCODING;
     public static final int DEFAULT_BUFFER_SIZE = 8*1024;
@@ -259,8 +258,8 @@
             return -1;
         if (coyoteRequest == null)
             return -1;
-
-        state = BYTE_STATE;
+        if(state == INITIAL_STATE)
+            state = BYTE_STATE;
 
         int result = coyoteRequest.doRead(bb);
 
@@ -293,6 +292,8 @@
     public void realWriteChars(char c[], int off, int len) 
         throws IOException {
         markPos = -1;
+        cb.setOffset(0);
+        cb.setEnd(0);
     }
 
 
@@ -318,13 +319,9 @@
             cb.setOffset(0);
             cb.setEnd(0);
         }
-
-        int limit = bb.getLength()+cb.getStart();
-        if( cb.getLimit() < limit ) 
-            cb.setLimit(limit);
-        conv.convert(bb, cb);
-        bb.setOffset(bb.getEnd());
         state = CHAR_STATE;
+        conv.convert(bb, cb, len);
+        bb.setOffset(bb.getEnd());
 
         return cb.getLength();
 



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

Reply via email to