Author: markt
Date: Sun Mar 30 14:13:36 2008
New Revision: 642819
URL: http://svn.apache.org/viewvc?rev=642819&view=rev
Log:
Apply Remy's patch for 44494 for multi-byte character data.
Modified:
tomcat/trunk/java/org/apache/tomcat/util/buf/B2CConverter.java
Modified: tomcat/trunk/java/org/apache/tomcat/util/buf/B2CConverter.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/buf/B2CConverter.java?rev=642819&r1=642818&r2=642819&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/buf/B2CConverter.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/buf/B2CConverter.java Sun Mar 30
14:13:36 2008
@@ -77,34 +77,28 @@
convert(bb, cb, cb.getBuffer().length - cb.getEnd());
}
+
public void convert( ByteChunk bb, CharChunk cb, int limit)
throws IOException
{
iis.setByteChunk( bb );
- convert(cb, limit);
- }
-
- private void convert(CharChunk cb, int limit)
- throws IOException
- {
try {
// read from the reader
+ int bbLengthBeforeRead = 0;
while( limit > 0 ) { // conv.ready() ) {
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
if( debug>0)
log( "EOF" );
- // reset();
return;
}
if( debug > 1 )
log("Converted: " + new String( result, 0, cnt ));
-
- // XXX go directly
cb.append( result, 0, cnt );
- limit -= cnt;
+ limit = limit - (bbLengthBeforeRead - bb.getLength());
}
} catch( IOException ex) {
if( debug>0)
@@ -113,6 +107,7 @@
throw ex;
}
}
+
public void reset()
throws IOException
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]