Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [jetty-users] Filter problem

Any chance someone on the Jetty team could comment on this? 

It's a show-stopper for me.

On Sat, Sep 7, 2013 at 5:07 PM, Nils Kilden-Pedersen <nilskp@xxxxxxxxx> wrote:

This is 9.0.5.

I'm having an issue with an infinite loop in a filter.

I assume this is a bug, but I don't know enough about the Jetty internals to say where exactly.

Basically, my code (the Filter) wraps the request using HttpServletRequestWrapper and then calls chain.doFilter(wrappedRequest, response)

The chain instance is ServletHandler$CachedChain and doFilter looks like this:

1465        public void doFilter(ServletRequest request, ServletResponse response)
1466            throws IOException, ServletException
1467        {
1468            final Request baseRequest=(request instanceof Request)?((Request)request):HttpChannel.getCurrentHttpChannel().getRequest();
1470            // pass to next filter
1471            if (_filterHolder!=null)
1472            {
1473                if (LOG.isDebugEnabled())
1474                    LOG.debug("call filter " + _filterHolder);
1475                Filter filter= _filterHolder.getFilter();
1476                if (_filterHolder.isAsyncSupported())
1477                    filter.doFilter(request, response, _next);
1478                else

I have asyncSupported = true and the filter retrieved on line 1475 is my filter that just called this method, which it then proceeds to call again on line 1477, which leads to the infinite loop.

Hope that's good enough.

Back to the top