DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG· RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT <http://issues.apache.org/bugzilla/show_bug.cgi?id=32688>. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND· INSERTED IN THE BUG DATABASE.
http://issues.apache.org/bugzilla/show_bug.cgi?id=32688 Summary: Setting content length to 0 stops sendRedirect Product: Tomcat 5 Version: 5.0.30 Platform: All OS/Version: All Status: NEW Severity: normal Priority: P2 Component: Connector:Coyote AssignedTo: [EMAIL PROTECTED] ReportedBy: [EMAIL PROTECTED] Here is my example: Test.jsp <[EMAIL PROTECTED] language="java" contentType="text/html;charset=utf-8" pageEncoding="utf-8" %><%response.setContentLength(0);response.sendRedirect ("http://www.apache.org");%> (all on the same line) by calling this jsp i've got the following answer HTTP Status 500 - -------------------------------------------------------------------------------- type Exception report message description The server encountered an internal error () that prevented it from fulfilling this request. exception java.lang.IllegalStateException org.apache.coyote.tomcat5.CoyoteResponseFacade.sendRedirect (CoyoteResponseFacade.java:352) org.apache.jsp.Test_jsp._jspService(Test_jsp.java:46) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94) javax.servlet.http.HttpServlet.service(HttpServlet.java:802) org.apache.jasper.servlet.JspServletWrapper.service (JspServletWrapper.java:324) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236) javax.servlet.http.HttpServlet.service(HttpServlet.java:802) According to the specification: setContentLength(int) public void setContentLength(int len) Sets the length of the content body in the response In HTTP servlets, this method sets the HTTP Content-Length header. Parameters: len - an integer specifying the length of the content being returned to the client; sets the Content-Length header sendRedirect(String) public void sendRedirect(java.lang.String location) throws IOException Sends a temporary redirect response to the client using the specified redirect location URL. This method can accept relative URLs; the servlet container must convert the relative URL to an absolute URL before sending the response to the client. If the location is relative without a leading / the container interprets it as relative to the current request URI. If the location is relative with a leading / the container interprets it as relative to the servlet container root. If the response has already been committed, this method throws an Illegal- StateException. After using this method, the response should be considered to be committed and should not be written to. Parameters: location - the redirect location URL Throws: IOException - If an input or output exception occurs IllegalStateException - If the response was committed or if a partial URL is given and cannot be converted into a valid URL SRV.5.5 Closure of Response Object When a response is closed, the container must immediately flush all remaining content in the response buffer to the client. The following events indicate that the servlet has satisfied the request and that the response object is to be closed: The termination of the service method of the servlet. The amount of content specified in the setContentLength method of the response has been written to the response. The sendError method is called. The sendRedirect method is called. As I am not writting in the content (I've check in the jsp compilation file) but just put some http header this should work. -- Configure bugmail: http://issues.apache.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]