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

Reply via email to