FrameworkServlet skips HttpServletResponse.getStatus() call on Servlet 2.5
Issue: SPR-12151
This commit is contained in:
@@ -161,6 +161,11 @@ public abstract class FrameworkServlet extends HttpServletBean implements Applic
|
||||
private static final String INIT_PARAM_DELIMITERS = ",; \t\n";
|
||||
|
||||
|
||||
/** Checking for Servlet 3.0+ HttpServletResponse.getStatus() */
|
||||
private static final boolean responseGetStatusAvailable =
|
||||
ClassUtils.hasMethod(HttpServletResponse.class, "getStatus");
|
||||
|
||||
|
||||
/** ServletContext attribute to find the WebApplicationContext in */
|
||||
private String contextAttribute;
|
||||
|
||||
@@ -1054,16 +1059,19 @@ public abstract class FrameworkServlet extends HttpServletBean implements Applic
|
||||
}
|
||||
}
|
||||
|
||||
private void publishRequestHandledEvent(HttpServletRequest request, HttpServletResponse response, long startTime, Throwable failureCause) {
|
||||
private void publishRequestHandledEvent(
|
||||
HttpServletRequest request, HttpServletResponse response, long startTime, Throwable failureCause) {
|
||||
|
||||
if (this.publishEvents) {
|
||||
// Whether or not we succeeded, publish an event.
|
||||
long processingTime = System.currentTimeMillis() - startTime;
|
||||
int statusCode = (responseGetStatusAvailable ? response.getStatus() : -1);
|
||||
this.webApplicationContext.publishEvent(
|
||||
new ServletRequestHandledEvent(this,
|
||||
request.getRequestURI(), request.getRemoteAddr(),
|
||||
request.getMethod(), getServletConfig().getServletName(),
|
||||
WebUtils.getSessionId(request), getUsernameForRequest(request),
|
||||
processingTime, failureCause, response.getStatus()));
|
||||
processingTime, failureCause, statusCode));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user