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]>

Reply via email to