Author: jfclere
Date: Tue Jun 29 14:07:23 2010
New Revision: 958977
URL: http://svn.apache.org/viewvc?rev=958977&view=rev
Log:
Arrange filter logic. Back port of r958911.
Modified:
tomcat/tc6.0.x/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java
tomcat/tc6.0.x/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java
tomcat/tc6.0.x/trunk/java/org/apache/coyote/http11/Http11Processor.java
tomcat/tc6.0.x/trunk/java/org/apache/coyote/http11/filters/BufferedInputFilter.java
tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml
Modified:
tomcat/tc6.0.x/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java
URL:
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java?rev=958977&r1=958976&r2=958977&view=diff
==============================================================================
--- tomcat/tc6.0.x/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java
(original)
+++ tomcat/tc6.0.x/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java
Tue Jun 29 14:07:23 2010
@@ -78,6 +78,12 @@ public class Http11AprProcessor implemen
protected static StringManager sm =
StringManager.getManager(Constants.Package);
+ /*
+ * Tracks how many internal filters are in the filter library so they
+ * are skipped when looking for pluggable filters.
+ */
+ private int pluggableFilterIndex = Integer.MAX_VALUE;
+
// ----------------------------------------------------------- Constructors
@@ -1742,6 +1748,8 @@ public class Http11AprProcessor implemen
//inputBuffer.addFilter(new GzipInputFilter());
outputBuffer.addFilter(new GzipOutputFilter());
+ pluggableFilterIndex = inputBuffer.filterLibrary.length;
+
}
@@ -1760,7 +1768,7 @@ public class Http11AprProcessor implemen
(inputFilters[Constants.CHUNKED_FILTER]);
contentDelimitation = true;
} else {
- for (int i = 2; i < inputFilters.length; i++) {
+ for (int i = pluggableFilterIndex; i < inputFilters.length; i++) {
if (inputFilters[i].getEncodingName()
.toString().equals(encodingName)) {
inputBuffer.addActiveFilter(inputFilters[i]);
Modified:
tomcat/tc6.0.x/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java
URL:
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java?rev=958977&r1=958976&r2=958977&view=diff
==============================================================================
--- tomcat/tc6.0.x/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java
(original)
+++ tomcat/tc6.0.x/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java
Tue Jun 29 14:07:23 2010
@@ -81,6 +81,13 @@ public class Http11NioProcessor implemen
*/
protected SSLSupport sslSupport;
+ /*
+ * Tracks how many internal filters are in the filter library so they
+ * are skipped when looking for pluggable filters.
+ */
+ private int pluggableFilterIndex = Integer.MAX_VALUE;
+
+
// ----------------------------------------------------------- Constructors
@@ -1769,6 +1776,8 @@ public class Http11NioProcessor implemen
//inputBuffer.addFilter(new GzipInputFilter());
outputBuffer.addFilter(new GzipOutputFilter());
+ pluggableFilterIndex = inputBuffer.filterLibrary.length;
+
}
@@ -1787,7 +1796,7 @@ public class Http11NioProcessor implemen
(inputFilters[Constants.CHUNKED_FILTER]);
contentDelimitation = true;
} else {
- for (int i = 2; i < inputFilters.length; i++) {
+ for (int i = pluggableFilterIndex; i < inputFilters.length; i++) {
if (inputFilters[i].getEncodingName()
.toString().equals(encodingName)) {
inputBuffer.addActiveFilter(inputFilters[i]);
Modified:
tomcat/tc6.0.x/trunk/java/org/apache/coyote/http11/Http11Processor.java
URL:
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/coyote/http11/Http11Processor.java?rev=958977&r1=958976&r2=958977&view=diff
==============================================================================
--- tomcat/tc6.0.x/trunk/java/org/apache/coyote/http11/Http11Processor.java
(original)
+++ tomcat/tc6.0.x/trunk/java/org/apache/coyote/http11/Http11Processor.java Tue
Jun 29 14:07:23 2010
@@ -74,6 +74,13 @@ public class Http11Processor implements
protected static boolean isSecurityEnabled =
org.apache.coyote.Constants.IS_SECURITY_ENABLED;
+ /*
+ * Tracks how many internal filters are in the filter library so they
+ * are skipped when looking for pluggable filters.
+ */
+ private int pluggableFilterIndex = Integer.MAX_VALUE;
+
+
// ------------------------------------------------------------ Constructor
@@ -1638,6 +1645,8 @@ public class Http11Processor implements
//inputBuffer.addFilter(new GzipInputFilter());
outputBuffer.addFilter(new GzipOutputFilter());
+ pluggableFilterIndex = inputBuffer.filterLibrary.length;
+
}
@@ -1656,7 +1665,7 @@ public class Http11Processor implements
(inputFilters[Constants.CHUNKED_FILTER]);
contentDelimitation = true;
} else {
- for (int i = 2; i < inputFilters.length; i++) {
+ for (int i = pluggableFilterIndex; i < inputFilters.length; i++) {
if (inputFilters[i].getEncodingName()
.toString().equals(encodingName)) {
inputBuffer.addActiveFilter(inputFilters[i]);
Modified:
tomcat/tc6.0.x/trunk/java/org/apache/coyote/http11/filters/BufferedInputFilter.java
URL:
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/coyote/http11/filters/BufferedInputFilter.java?rev=958977&r1=958976&r2=958977&view=diff
==============================================================================
---
tomcat/tc6.0.x/trunk/java/org/apache/coyote/http11/filters/BufferedInputFilter.java
(original)
+++
tomcat/tc6.0.x/trunk/java/org/apache/coyote/http11/filters/BufferedInputFilter.java
Tue Jun 29 14:07:23 2010
@@ -102,10 +102,12 @@ public class BufferedInputFilter impleme
}
public void recycle() {
- if (buffered.getBuffer().length > 65536) {
- buffered = null;
- } else {
- buffered.recycle();
+ if (buffered != null) {
+ if (buffered.getBuffer().length > 65536) {
+ buffered = null;
+ } else {
+ buffered.recycle();
+ }
}
tempRead.recycle();
hasRead = false;
Modified: tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml
URL:
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml?rev=958977&r1=958976&r2=958977&view=diff
==============================================================================
--- tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml Tue Jun 29 14:07:23 2010
@@ -42,6 +42,8 @@
<section name="Tomcat 6.0.28 (jfclere)">
<subsection name="Catalina">
<changelog>
+ <fix>Arrange filter logic. (jfclere)
+ </fix>
<fix>
<bug>49230</bug>: Enhance JRE leak prevention listener with protection
for the keep-alive thread started by
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]