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]