Mark,

I just checked in a slight generalization of this change (the read of the four-byte
header could fail in the same way.  I forgot to give you credit in the CVS commit
:-(, but thaks for the bug report.  Please test this (with your large servlet
requests) when you can.

Craig



Mark Pollard wrote:

> 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


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to