Skip to content

Instantly share code, notes, and snippets.

@danmork
Last active July 29, 2016 00:22
Show Gist options
  • Save danmork/bf8c468141fa004298928a1ad9b31746 to your computer and use it in GitHub Desktop.
Save danmork/bf8c468141fa004298928a1ad9b31746 to your computer and use it in GitHub Desktop.
Prevent ErrorReportValve from squashing HEAD error response
package com.example.servlet.filters
import javax.servlet.Filter
import javax.servlet.FilterChain
import javax.servlet.FilterConfig
import javax.servlet.ServletException
import javax.servlet.ServletRequest
import javax.servlet.ServletResponse
public class FlushHeadErrorResponseFilter implements Filter {
public void destroy() {
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
chain.doFilter(request, response);
if (request.method == null ||
!request.method.equals("HEAD") ||
response.status < 400) return
// flush the buffer to commit the response
// ErrorReportValve will not touch committed responses
response.flushBuffer()
}
public void init(FilterConfig filterConfig) throws ServletException {
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment