[EMAIL PROTECTED] wrote:
------- Additional Comments From [EMAIL PROTECTED] 2005-04-25 18:07 -------
One (probably unintended) side effect of SRV.5.5, 2nd bullet, is that
even when response.setContentLength(0) is not called explicitly, but
the response's content length is set to 0 via
response.setHeader("Content-Length", "0"), as in the following code
snippet:
response.setHeader("Host", "localhost");
response.setHeader("Pragma", "nocache");
response.setHeader("Content-Length", "0");
response.setHeader("location", "http://www.apache.org");
any subsequently setHeader() calls are ignored.
This is not intuitive, because HTTP response headers should be
settable in any order.
I suggest we amend SRV.5.5, 2nd bullet, in the upcoming Servlet Maintenance
release, as follows:
The amount of content specified in the setContentLength method of the
response [ADD: has been greater than zero] and has been written to the
response
Unless there are any objections, I am going to apply the following
patch:
Index: Response.java
===================================================================
RCS file:
/home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/connector/Response.java,v
retrieving revision 1.11
diff -u -r1.11 Response.java
--- Response.java 31 Mar 2005 10:31:53 -0000 1.11
+++ Response.java 25 Apr 2005 16:03:48 -0000
@@ -315,7 +315,7 @@
*/
public boolean isAppCommitted() {
return (this.appCommitted || isCommitted() || isSuspended()
- || ((getContentLength() != -1)
+ || ((getContentLength() > 0)
&& (getContentCount() >= getContentLength())));
}
+1.
Rémy
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]