in src/main/java/org/apache/sling/engine/impl/filter/ErrorFilterChain.java [75:116]
public void doFilter(final ServletRequest request, final ServletResponse response) throws ServletException, IOException {
if ( firstCall ) {
if (request.getAttribute(RECURSION_ATTRIBUTE) != null) {
if ( this.mode == Mode.STATUS ) {
if ( message == null) {
LOG.warn(PREFIX_RECURSION.concat(String.valueOf(status)));
} else {
LOG.warn(PREFIX_RECURSION.concat(String.valueOf(status)).concat(" : ").concat(message));
}
} else {
if ( throwable.getMessage() != null ) {
LOG.warn(PREFIX_RECURSION.concat(throwable.getMessage()), throwable);
} else {
LOG.warn(PREFIX_RECURSION.concat(throwable.getClass().getName()), throwable);
}
}
return;
}
request.setAttribute(RECURSION_ATTRIBUTE, "true");
firstCall = false;
// do nothing if response is already committed
if (response.isCommitted()) {
if ( this.mode == Mode.STATUS ) {
if ( message == null) {
LOG.warn(PREFIX_COMMITTED.concat(String.valueOf(status)));
} else {
LOG.warn(PREFIX_COMMITTED.concat(String.valueOf(status)).concat(" : ").concat(message));
}
} else {
if ( throwable.getMessage() != null ) {
LOG.warn(PREFIX_COMMITTED.concat(throwable.getMessage()), throwable);
} else {
LOG.warn(PREFIX_COMMITTED.concat(throwable.getClass().getName()), throwable);
}
}
return;
}
// reset the response to clear headers and body
response.reset();
}
super.doFilter(request, response);
}