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]