From 01655cb1b0abcaa6810226cc198273844ccc336d Mon Sep 17 00:00:00 2001 From: markt Date: Thu, 11 Aug 2011 08:13:56 +0000 Subject: [PATCH] Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=41718 RFC2616 says redirects should include a response body. git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@1156530 13f79535-47bb-0310-9956-ffa450edef68 --- java/org/apache/catalina/connector/LocalStrings.properties | 1 + java/org/apache/catalina/connector/Response.java | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/java/org/apache/catalina/connector/LocalStrings.properties b/java/org/apache/catalina/connector/LocalStrings.properties index 197f11de3..7eea0ffdd 100644 --- a/java/org/apache/catalina/connector/LocalStrings.properties +++ b/java/org/apache/catalina/connector/LocalStrings.properties @@ -47,6 +47,7 @@ coyoteResponse.reset.ise=Cannot call reset() after response has been committed coyoteResponse.resetBuffer.ise=Cannot reset buffer after response has been committed coyoteResponse.sendError.ise=Cannot call sendError() after the response has been committed coyoteResponse.sendRedirect.ise=Cannot call sendRedirect() after the response has been committed +coyoteResponse.sendRedirect.note=

Redirecting to {0}

coyoteResponse.setBufferSize.ise=Cannot change buffer size after data has been written # diff --git a/java/org/apache/catalina/connector/Response.java b/java/org/apache/catalina/connector/Response.java index 6b8ca7bfe..f32afdbae 100644 --- a/java/org/apache/catalina/connector/Response.java +++ b/java/org/apache/catalina/connector/Response.java @@ -1327,13 +1327,17 @@ public class Response return; // Clear any data content that has been buffered - resetBuffer(); + resetBuffer(true); // Generate a temporary redirect to the specified location try { String absolute = toAbsolute(location); setStatus(SC_FOUND); setHeader("Location", absolute); + PrintWriter writer = getWriter(); + writer.print( + sm.getString("coyoteResponse.sendRedirect.note", absolute)); + flushBuffer(); } catch (IllegalArgumentException e) { setStatus(SC_NOT_FOUND); } -- 2.11.0