From fb229155637a3ce0ffd7f18465f6ca79700781d7 Mon Sep 17 00:00:00 2001 From: Rossen Stoyanchev Date: Thu, 1 Mar 2018 15:52:26 -0500 Subject: [PATCH] Correct log level Issue: SPR-16528 --- .../servlet/mvc/method/annotation/ResponseBodyEmitter.java | 6 +++++- .../method/annotation/ResponseEntityExceptionHandler.java | 6 +++--- .../mvc/support/DefaultHandlerExceptionResolver.java | 4 ++-- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/ResponseBodyEmitter.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/ResponseBodyEmitter.java index 209cd522a5c..42bdf04b6b1 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/ResponseBodyEmitter.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/ResponseBodyEmitter.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2015 the original author or authors. + * Copyright 2002-2018 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -182,6 +182,10 @@ public class ResponseBodyEmitter { * Complete request processing. *

A dispatch is made into the app server where Spring MVC completes * asynchronous request processing. + *

Note: you do not need to call this method after an + * {@link IOException} from any of the {@code send} methods. The Servlet + * container will generate an error notification that Spring MVC will process + * and handle through the exception resolver mechanism and then complete. */ public synchronized void complete() { this.complete = true; diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/ResponseEntityExceptionHandler.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/ResponseEntityExceptionHandler.java index b8b0ccf07aa..e7300c8686d 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/ResponseEntityExceptionHandler.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/ResponseEntityExceptionHandler.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2017 the original author or authors. + * Copyright 2002-2018 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -479,8 +479,8 @@ public abstract class ResponseEntityExceptionHandler { HttpServletRequest request = servletRequest.getNativeRequest(HttpServletRequest.class); HttpServletResponse response = servletRequest.getNativeResponse(HttpServletResponse.class); if (response.isCommitted()) { - if (logger.isErrorEnabled()) { - logger.error("Async timeout for " + request.getMethod() + " [" + request.getRequestURI() + "]"); + if (logger.isDebugEnabled()) { + logger.debug("Async timeout for " + request.getMethod() + " [" + request.getRequestURI() + "]"); } return null; } diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/support/DefaultHandlerExceptionResolver.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/support/DefaultHandlerExceptionResolver.java index c7a41e5ef32..456a27a525c 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/support/DefaultHandlerExceptionResolver.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/support/DefaultHandlerExceptionResolver.java @@ -501,8 +501,8 @@ public class DefaultHandlerExceptionResolver extends AbstractHandlerExceptionRes if (!response.isCommitted()) { response.sendError(HttpServletResponse.SC_SERVICE_UNAVAILABLE); } - else if (logger.isErrorEnabled()) { - logger.error("Async timeout for " + request.getMethod() + " [" + request.getRequestURI() + "]"); + else if (logger.isDebugEnabled()) { + logger.debug("Async timeout for " + request.getMethod() + " [" + request.getRequestURI() + "]"); } return new ModelAndView(); }