remm 02/03/27 18:34:11 Modified: http11/src/java/org/apache/coyote/http11 InternalInputBuffer.java InternalOutputBuffer.java Log: - Remove the FIXME in the addActiveFilter methods, and make the algoritm more robust. Now, it is not possible anymore to create a filter loop (which could happen for example when a filter was added twice, which was too restrictive). - Fix an off-by-one (since it was +1, it didn't cause any problems, but could mask bugs) in the addFilter code. - This probably fixes 7534 (or at least changes the problems it causes). Revision Changes Path 1.14 +8 -7 jakarta-tomcat-connectors/http11/src/java/org/apache/coyote/http11/InternalInputBuffer.java Index: InternalInputBuffer.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/http11/src/java/org/apache/coyote/http11/InternalInputBuffer.java,v retrieving revision 1.13 retrieving revision 1.14 diff -u -r1.13 -r1.14 --- InternalInputBuffer.java 11 Mar 2002 00:35:25 -0000 1.13 +++ InternalInputBuffer.java 28 Mar 2002 02:34:11 -0000 1.14 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-connectors/http11/src/java/org/apache/coyote/http11/InternalInputBuffer.java,v 1.13 2002/03/11 00:35:25 remm Exp $ - * $Revision: 1.13 $ - * $Date: 2002/03/11 00:35:25 $ + * $Header: /home/cvs/jakarta-tomcat-connectors/http11/src/java/org/apache/coyote/http11/InternalInputBuffer.java,v 1.14 2002/03/28 02:34:11 remm Exp $ + * $Revision: 1.14 $ + * $Date: 2002/03/28 02:34:11 $ * * ==================================================================== * @@ -276,7 +276,7 @@ newFilterLibrary[filterLibrary.length] = filter; filterLibrary = newFilterLibrary; - activeFilters = new InputFilter[filterLibrary.length + 1]; + activeFilters = new InputFilter[filterLibrary.length]; } @@ -307,12 +307,13 @@ */ public void addActiveFilter(InputFilter filter) { - // FIXME: Check for null ? - // FIXME: Check index ? - if (lastActiveFilter == -1) { filter.setBuffer(inputStreamInputBuffer); } else { + for (int i = 0; i <= lastActiveFilter; i++) { + if (activeFilters[i] == filter) + return; + } filter.setBuffer(activeFilters[lastActiveFilter]); } 1.11 +5 -1 jakarta-tomcat-connectors/http11/src/java/org/apache/coyote/http11/InternalOutputBuffer.java Index: InternalOutputBuffer.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/http11/src/java/org/apache/coyote/http11/InternalOutputBuffer.java,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- InternalOutputBuffer.java 11 Mar 2002 07:12:07 -0000 1.10 +++ InternalOutputBuffer.java 28 Mar 2002 02:34:11 -0000 1.11 @@ -234,7 +234,7 @@ newFilterLibrary[filterLibrary.length] = filter; filterLibrary = newFilterLibrary; - activeFilters = new OutputFilter[filterLibrary.length + 1]; + activeFilters = new OutputFilter[filterLibrary.length]; } @@ -268,6 +268,10 @@ if (lastActiveFilter == -1) { filter.setBuffer(outputStreamOutputBuffer); } else { + for (int i = 0; i <= lastActiveFilter; i++) { + if (activeFilters[i] == filter) + return; + } filter.setBuffer(activeFilters[lastActiveFilter]); }
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>