From: markt Date: Wed, 6 Jul 2011 15:05:45 +0000 (+0000) Subject: Correct regression caused by connector re-factoring that meant that sendfile data... X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=8a7ab7d4502f359c4c1d9598b1cf35f07ea79a7a;p=tomcat7.0 Correct regression caused by connector re-factoring that meant that sendfile data was not reset between pipe-lined HTTP requests. git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@1143457 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/java/org/apache/coyote/http11/AbstractHttp11Processor.java b/java/org/apache/coyote/http11/AbstractHttp11Processor.java index 78bfc74bf..c1aa4b0e9 100644 --- a/java/org/apache/coyote/http11/AbstractHttp11Processor.java +++ b/java/org/apache/coyote/http11/AbstractHttp11Processor.java @@ -776,6 +776,9 @@ public abstract class AbstractHttp11Processor extends AbstractProcessor { http09 = false; contentDelimitation = false; expectation = false; + + prepareRequestInternal(); + if (endpoint.isSSLEnabled()) { request.scheme().setString("https"); } @@ -971,6 +974,12 @@ public abstract class AbstractHttp11Processor extends AbstractProcessor { /** + * Connector implementation specific request preparation. Ideally, this will + * go away in the future. + */ + protected abstract void prepareRequestInternal(); + + /** * When committing the response, we have to validate the set of headers, as * well as setup the response filters. */ diff --git a/java/org/apache/coyote/http11/Http11AprProcessor.java b/java/org/apache/coyote/http11/Http11AprProcessor.java index 0d4cb6b77..56f9ef337 100644 --- a/java/org/apache/coyote/http11/Http11AprProcessor.java +++ b/java/org/apache/coyote/http11/Http11AprProcessor.java @@ -621,6 +621,11 @@ public class Http11AprProcessor extends AbstractHttp11Processor { @Override + protected void prepareRequestInternal() { + sendfileData = null; + } + + @Override protected boolean prepareSendfile(OutputFilter[] outputFilters) { String fileName = (String) request.getAttribute( "org.apache.tomcat.sendfile.filename"); diff --git a/java/org/apache/coyote/http11/Http11NioProcessor.java b/java/org/apache/coyote/http11/Http11NioProcessor.java index c277eab4e..ecb041590 100644 --- a/java/org/apache/coyote/http11/Http11NioProcessor.java +++ b/java/org/apache/coyote/http11/Http11NioProcessor.java @@ -676,6 +676,11 @@ public class Http11NioProcessor extends AbstractHttp11Processor { @Override + protected void prepareRequestInternal() { + sendfileData = null; + } + + @Override protected boolean prepareSendfile(OutputFilter[] outputFilters) { String fileName = (String) request.getAttribute( "org.apache.tomcat.sendfile.filename"); diff --git a/java/org/apache/coyote/http11/Http11Processor.java b/java/org/apache/coyote/http11/Http11Processor.java index 852eba4f4..e332e71ce 100644 --- a/java/org/apache/coyote/http11/Http11Processor.java +++ b/java/org/apache/coyote/http11/Http11Processor.java @@ -582,6 +582,11 @@ public class Http11Processor extends AbstractHttp11Processor { @Override + protected void prepareRequestInternal() { + // NOOP for BIO + } + + @Override protected boolean prepareSendfile(OutputFilter[] outputFilters) { // Should never, ever call this code Exception e = new Exception(); diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index 4b3e50b53..7c1e8219d 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -86,6 +86,10 @@ Correct regression caused by connector re-factoring that made AJP APR/native connector very unstable on Windows platforms. (markt) + + Correct regression caused by connector re-factoring that meant that + sendfile data was not reset between pipe-lined HTTP requests. (markt) +