I am running Tomcat 3.2 with Apache 1.3.12 under Windows NT 4.0/Service
Pack 5 using the JRE 1.2.2 w/o Hotspot. I was getting the message
"Incomplete read, deal with it" when sending servlet requests > ~1.5KB.
In short, I dealt with it by continuing to read until the full request has
been read from the socket InputStream.
I apologize for not properly posting this patch. I am under time
constraints and do not have time to "learn" the appropriate method.
class: org.apache.tomcat.service.connector.TcpConnector
method: public int receive(MsgBuffer msg)
-- NEW ---------------
// XXX check if enough space - it's assert()-ed !!!
// Can we have only one read ( with unblocking, it can read all at once -
but maybe more ) ?
//??? len-=4; // header
int offset = 4 ;
int remainingLength = len ;
do {
rd=in.read( b, offset, remainingLength );
offset += rd ;
remainingLength -= rd ;
}
while (remainingLength > 0) ;
-- OLD ---------------
// XXX check if enough space - it's assert()-ed !!!
// Can we have only one read ( with unblocking, it can read all at once -
but maybe more ) ?
//??? len-=4; // header
rd=in.read( b, 4, len );
if( rd != len ) {
System.out.println( "Incomplete read, deal with it " + len + " " +
rd);
// ??? log
}
--
Mark Pollard
PanGo Networks, Inc.
http://www.pangonetworks.com
smime.p7s