Sorry, my fault.
This was actually our code calling stream.flush() which ends up calling
response.flushBuffer() (fairly reasonable, really :-).
So, looks like the T4 code is beyond reproach, again.
Geoff
- Original Message -
From: Geoff Soutter [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Sent: Thursday, June 14, 2001 1:12 PM
Subject: [repost] [T4] servlet including jsp causes jsp to flush buffer?
come on guys, I know you're listening ... :-)
is this really a bug or am I missing something obvious? (I'm not really up
to speed on Jasper...)
If it is I can enter it into bugzilla...
geoff
- Original Message -
From: Geoff Soutter [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Sent: Wednesday, June 13, 2001 4:14 PM
Subject: [T4] servlet including jsp causes jsp to flush buffer?
Hi,
I've got a servlet which includes a JSP page, and it appears that the
JSP
engine in Tomcat 4.0 calls response.flushBuffer() when the include
finishes.
IMHO this behaviour is incorrect, as it should be up to the topmost
servlet to control what is happening with the buffering as much as
possible.
Currently this behaviour is preventing my servlet from controlling the
buffering as it would like to.
I looked though the list and noticed that v3.x has many flushing
problems
but I was kinda hoping they'd be fixed in Tomcat 4.x ;-).
Anyway, here's the offending code (I think).
In PageContextImpl.java
public void release() {
try {
if (isIncluded) {
((JspWriterImpl)out).flushBuffer(); // push it into the including
jspWriter
} else {
out.flush();
}
} catch (IOException ex) {
loghelper.log(Internal error flushing the buffer in release());
}
and in JspWriterImpl.java
public void flush() throws IOException {
synchronized (lock) {
flushBuffer();
if (out != null) {
out.flush();
// Also flush the response buffer.
response.flushBuffer();
}
}
}
Geoff
--
Keep cool till after school!