Author: lukaszlenart Date: Fri Sep 6 06:55:55 2013 New Revision: 1520499 URL: http://svn.apache.org/r1520499 Log: WW-4103, WW-4191 Reduces noise in the logs when action/result is missing
Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java?rev=1520499&r1=1520498&r2=1520499&view=diff ============================================================================== --- struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java (original) +++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java Fri Sep 6 06:55:55 2013 @@ -568,18 +568,7 @@ public class Dispatcher { request.setAttribute(ServletActionContext.STRUTS_VALUESTACK_KEY, stack); } } catch (ConfigurationException e) { - // WW-2874 Only log error if in devMode - if (devMode) { - String reqStr = request.getRequestURI(); - if (request.getQueryString() != null) { - reqStr = reqStr + "?" + request.getQueryString(); - } - LOG.error("Could not find action or result\n" + reqStr, e); - } else { - if (LOG.isWarnEnabled()) { - LOG.warn("Could not find action or result", e); - } - } + logConfigurationException(request, e); sendError(request, response, context, HttpServletResponse.SC_NOT_FOUND, e); } catch (Exception e) { if (handleException || devMode) { @@ -593,6 +582,25 @@ public class Dispatcher { } /** + * Performs logging of missing action/result configuration exception + * + * @param request current {@link HttpServletRequest} + * @param e {@link ConfigurationException} that occurred + */ + protected void logConfigurationException(HttpServletRequest request, ConfigurationException e) { + // WW-2874 Only log error if in devMode + String uri = request.getRequestURI(); + if (request.getQueryString() != null) { + uri = uri + "?" + request.getQueryString(); + } + if (devMode) { + LOG.error("Could not find action or result\n#0", e, uri); + } else if (LOG.isWarnEnabled()) { + LOG.warn("Could not find action or result: #0", e, uri); + } + } + + /** * Create a context map containing all the wrapped request objects * * @param request The servlet request @@ -889,11 +897,12 @@ public class Dispatcher { } } else { try { - if (LOG.isErrorEnabled()) { - LOG.error("Exception occurred during processing request: #0", e, e.getMessage()); - } // WW-1977: Only put errors in the request when code is a 500 error if (code == HttpServletResponse.SC_INTERNAL_SERVER_ERROR) { + // WW-4103: Only logs error when application error occurred, not Struts error + if (LOG.isErrorEnabled()) { + LOG.error("Exception occurred during processing request: #0", e, e.getMessage()); + } // send a http error response to use the servlet defined error handler // make the exception availible to the web.xml defined error page request.setAttribute("javax.servlet.error.exception", e);