This is unrelated, but worth mentioning to other people converting
over from Resin 3.0.x:
We had this problem when converting over from Resin 3.0.x.: The
problem is that Resin 4.0.x now outputs white space in each iteration of
c:forEach .../c:forEach loops, and other places where Resin 3.0.x
did not. That causes problems with Resin 3.0.x and older code that has
c:redirect, sendRedirect, jsp:forward, response.reset(), and any other
calls that rely on the response not being committed. The reason is
that the buffer used to cache up a response prior to writing out to
response's outputStream can fill up very quickly compared with earlier
versions and causes the response to commit very fast (with a ton of
white space to boot).
The fix is, if you are doing jsp:include page= with loops in it, to do:
c:import url= var=debug .. /c:import
instead. Instead of the output being dumped directly to response's
output buffer, the white space will go to a variable that you can ignore
(and comes in handy a development environment).
If you are not including/importing anything and have a bunch of
c:forEach in your code prior to your redirect/clear/reset, try
throwing those in a second JSP and doing a c:import .. var=debug in
order to trap the white space.
This way your response.buffer won't commit prematurely and you can still
do redirects/resets.
I know this is unrelated but we had issues with it, and I thought I
would post it for others searching for redirect/clear/reset issues.
Aaron
On 8/30/2010 10:33 AM, Morawetz, Martin wrote:
wMorawetz, Martin wrote:
Hi all,
Some JSPs produce following error Stacktrace in our Java-log:
java.io.IOException: can't clear response after writing headers
at
com.caucho.server.http.ResponseStream.clear(ResponseStream.java:233)
at
com.caucho.server.http.HttpServletResponseImpl.getOutputStream(HttpServ
letResponseImpl.java:137)
:
:
The Exception gets thrown at the line
sosOut = response.getOutputStream();
This code work on all other resin installations (for years now)
The only difference to our other resin installations that I'm aware
of,
is that resin and apache are on two separate machines now.
We use Resin Pro 4.0.9.
Any ideas what might cause this exception?
Resin is being more strict about conforming to the servlet/JSP spec.
Is there an output flush() anywhere before that clear()?
-- Scott
Yes there is, and removing the out.flush() resolves the issue.
Was that 'being more strict' a recent change? The same code
works on a different server with Resin 4.0.0 installed.
Regards, Martin
The information in this e-mail and in any attachments is confidential and
intended solely
for the attention and use of the named addressee(s). This information may be
subject to legal,
professional or other privilege and further distribution of it is strictly
prohibited without
our authority. If you are not the intended recipient, you are not authorised
to and must not
disclose, copy, distribute, or retain this message or any part of it, and
should notify us
immediately.
This footnote also confirms that this email has been automatically scanned
for the presence
of computer viruses, profanities and certain file types.
___
resin-interest mailing list
resin-interest@caucho.com
http://maillist.caucho.com/mailman/listinfo/resin-interest
___
resin-interest mailing list
resin-interest@caucho.com
http://maillist.caucho.com/mailman/listinfo/resin-interest