Hey thanks guys ! You're too fast for me ... I'm trying to catch up with
the emails ... I was just answering a previous email from Costin and you
come up with the result !

Just to let me understand what you're saying ... 

Are you saying that the logic in Tomcat is that prior to closing a
socket, all data is read first ?

And that this is not what is happening here ?

And thus if I changed my test case to explicitly tell Tomcat to read the
body (using request.getParameter("xxx")) the problem will disappear ?

Could it be because for this test case (testPostMethod) HTTP parameters
are sent both in the URL _and_ in the body as POST data ?

Thanks a lot
-Vincent

> -----Original Message-----
> From: Bill Barker [mailto:[EMAIL PROTECTED]]
> Sent: 07 February 2002 21:38
> To: Tomcat Developers List
> Subject: Re: Tomcat 3.3 - Cactus Issue
> 
> I've found an XP machine to try this on, and can pretty much confirm
that
> it
> is an un-read POST body.  The print statements show that the bad test
has
> (at the end):
> Content-Length:  11
> Available:    11
> 
> The servlet is finishing so fast that the body isn't even available by
the
> time shutdownInput is called. If I modify TcpConnection.shutdownInput
to
> do:
>     socket.setSoTimeout(10);
>      InputStream is = socket.getInputStream();
>      int available = is.available ();
>      if(available <= 0) {
>        available=1;
>      }
> 
> Cactus starts working (although all of the times are increased by
10ms).
> Interestingly, Socket.shutdownInput() still causes Cactus to fail.
The
> thread yielding logic needs to be moved up to before the call to
> shutdownInput to get it to work.
> ----- Original Message -----
> From: <[EMAIL PROTECTED]>
> To: "Tomcat Developers List" <[EMAIL PROTECTED]>
> Sent: Thursday, February 07, 2002 9:05 AM
> Subject: RE: Tomcat 3.3 - Cactus Issue
> 
> 
> > On Thu, 7 Feb 2002, Vincent Massol wrote:
> >
> > > The particularity of testPostMethod is that it sends information
both
> in
> > > the URL (as parameters) and in the request BODY in POST form.
> > >
> > > Thus, there is some POST data sent !
> >
> > Ok, then what really matters is who reads the body and how.
> >
> > Sorry for not beeing able to spend more time on this, I wanted to
> > finish the password for ajp13 ( I think it's pretty important to
> > at least have the code in ).
> >
> > Larry - since you spent a lot of time on this, did you checked
> > the values for getContentLenght() and request.available - that
> > would be an easy indication of how much has been read from
> > the body.
> >
> > Vincent - could you add a println or debug message in the method
> > that is doing the POST - with the exact size of the body.
> > Do you set Content-Length header ? Are you using URLConnection
> > to send the body, or a custom http client.
> >
> > I still have a feeling something is wrong with the request
> > body. All the references I found about this exception are related
> > with unread data on the receiving socket - and the fact that
> > it happens only sometimes and on some OSes indicates pretty
> > clearly that somehow some data is still 'on the wire' when
> > we close the socket ( and gets in after available() ).
> >
> > If the ContentLength and the read size of the body you send
> > do match - then checking getContentLength() and available
> > would clearly show if the servlet is indeed reading the full
> > body ( and we would know that the sender is not sending more ).
> >
> > Would it be possible to have a difference between the 2 ?
> > Like having ContentLength set to a string size, and
> > some non-ascii chars in the string ?
> >
> >
> > Costin
> >
> >
> > --
> > To unsubscribe, e-mail:
> <mailto:[EMAIL PROTECTED]>
> > For additional commands, e-mail:
> <mailto:[EMAIL PROTECTED]>
> >
> 
> 
> --
> To unsubscribe, e-mail:   <mailto:tomcat-dev-
> [EMAIL PROTECTED]>
> For additional commands, e-mail: <mailto:tomcat-dev-
> [EMAIL PROTECTED]>
> 




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

Reply via email to