From: billbarker Date: Tue, 4 Sep 2007 02:45:37 +0000 (+0000) Subject: Forward porting Reader fixes from 5.5.x X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=e257a53c81c5d471afc8e8a4e11f531fbe114089;p=tomcat7.0 Forward porting Reader fixes from 5.5.x git-svn-id: https://svn.apache.org/repos/asf/tomcat/tc6.0.x/trunk@572498 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/java/org/apache/catalina/connector/InputBuffer.java b/java/org/apache/catalina/connector/InputBuffer.java index f176a3dd2..f989ce61c 100644 --- a/java/org/apache/catalina/connector/InputBuffer.java +++ b/java/org/apache/catalina/connector/InputBuffer.java @@ -292,7 +292,8 @@ public class InputBuffer extends Reader if (coyoteRequest == null) return -1; - state = BYTE_STATE; + if(state == INITIAL_STATE) + state = BYTE_STATE; int result = coyoteRequest.doRead(bb); @@ -325,6 +326,8 @@ public class InputBuffer extends Reader public void realWriteChars(char c[], int off, int len) throws IOException { markPos = -1; + cb.setOffset(0); + cb.setEnd(0); } @@ -351,12 +354,9 @@ public class InputBuffer extends Reader 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();