tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Wyn Easton <>
Subject 3.2 beta 7 problem - RequestDispatcher include()
Date Sun, 12 Nov 2000 21:31:48 GMT
I'm having this problem on 3.2 beta 7

The exact text of the  exception is:

java.lang.IllegalArgumentException: Short Read

This Exception is being generated in in the
parsePostData() method.

Here is what is happening:

I'm opening a HttpURLConnection to servlet_A that has been set to use
the POST method by calling setRequestMethod("POST") for the
HttpURLConnection. In servlet_A I get a ServletInputStream and
read from the HttpURLConnection.
I then get an ServletOutputStream from the response.
I then get a RequestDispatcher for servlet_B.
When I call the include() method I get the exception mentioned
because parsePostData() in HttpUtils tries to read "len" number
of bytes from the ServletInputStream "in" and there is nothing
to read. I changed parsePostData() in HttpUtils to return an
empty Hashtable for this case and it worked fine. 
(Maybe this is how this should work since nothing read means no
parameters in the POST data. Even if the len is greater than 0.)

However, if I try to use the ServletOutputStream after returning
to servlet_A from servlet_B nothing is written to the original
HttpURLConnection.  I don't know if the ServletOutputStream is
being closed when I return from the include(). I don't get an
Exception when writing to the ServletOutputStream. I just don't
get any data at the listening end of the HttpURLConnection.

I'm going to modify my code to use the include() instead of
the HttpURLConnection, but shouldn't it work either way?


Wyn Easton

Do You Yahoo!?
Yahoo! Calendar - Get organized for the holidays!

View raw message