code: public void doFilter(ServletRequest request, ServletResponse response) throws IOException, ServletException {
          int size = filters.size();
          if (filterIndex < size) {
              Filter filter = filters.get(filterIndex);
              if (LOGGER.isDebugEnabled()) {
                  LOGGER.debug("call filter {}/{} of type {} ", new Object[]{ (filterIndex + 1), size,
                      filter.getClass().getName() });
              }
              filterIndex++;
              filter.doFilter(request, response, this);
          } else {
              LOGGER.debug("No more filters in chain, delegate to servlet");
              delegateServlet.service(request, response);
          }
      }
docs: {@inheritDoc}