I suspect the choice of a ServletFilter vs Servlet was done for reasons that might have made sense forever-ago. It has always been weird. Does it still make sense? Maybe Hossman remembers.
Why I'm bringing this up: I heard of HTTP 404 responses coming from a Solr server I run, but didn't see the request in our Solr logs. It turns out that requests into Solr to a non-existent core are not logged by Solr. A 404 made sense of course, and that's what happened, so there's no bug but the logging situation is disappointing. By code inspection, I see that SolrDispatchFilter will do the PASSTHROUGH case if it can't find the core. Jetty ultimately gets it (default servlet?) and returns the 404 and HTML in our "error404.html". Furthermore, I have also recently seen error scenarios where Solr does handle the request but doesn't log it *unless* it's a 500 (see ResponseUtils). Shouldn't we want at least one *Solr* log message for every request to Solr and no matter the HTTP status? I'm aware Jetty has logs but it's a patchwork between looking at both. ~ David Smiley Apache Lucene/Solr Search Developer http://www.linkedin.com/in/davidwsmiley