/* Exception reporting policy method. * @param e the Throwable to report. */ private void exception(Throwable e) { try { _persistent = false; int error_code = HttpResponse.__500_Internal_Server_Error; if (e instanceof HttpException) { error_code = ((HttpException) e).getCode(); if (_request == null) log.warn(e.toString()); else log.warn(_request.getRequestLine() + " " + e.toString()); log.debug(LogSupport.EXCEPTION, e); } else if (e instanceof EOFException) { LogSupport.ignore(log, e); return; } else { _request.setAttribute("javax.servlet.error.exception_type", e.getClass()); _request.setAttribute("javax.servlet.error.exception", e); if (_request == null) log.warn(LogSupport.EXCEPTION, e); else log.warn(_request.getRequestLine(), e); } if (_response != null && !_response.isCommitted()) { _response.reset(); _response.removeField(HttpFields.__TransferEncoding); _response.setField(HttpFields.__Connection, HttpFields.__Close); _response.sendError(error_code); } } catch (Exception ex) { LogSupport.ignore(log, ex); } }