diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/reactive/error/AbstractErrorWebExceptionHandler.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/reactive/error/AbstractErrorWebExceptionHandler.java index bfc411ee15d..f8cdbe03be9 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/reactive/error/AbstractErrorWebExceptionHandler.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/reactive/error/AbstractErrorWebExceptionHandler.java @@ -263,17 +263,7 @@ public abstract class AbstractErrorWebExceptionHandler implements ErrorWebExcept .flatMap((response) -> write(exchange, response)); } - private boolean isDisconnectedClientError(Throwable ex) { - return DISCONNECTED_CLIENT_EXCEPTIONS.contains(ex.getClass().getSimpleName()) - || isDisconnectedClientErrorMessage(NestedExceptionUtils.getMostSpecificCause(ex).getMessage()); - } - - private boolean isDisconnectedClientErrorMessage(String message) { - message = (message != null) ? message.toLowerCase() : ""; - return (message.contains("broken pipe") || message.contains("connection reset by peer")); - } - - private void logError(ServerRequest request, ServerResponse response, Throwable throwable) { + protected void logError(ServerRequest request, ServerResponse response, Throwable throwable) { if (logger.isDebugEnabled()) { logger.debug(request.exchange().getLogPrefix() + formatError(throwable, request)); } @@ -284,6 +274,16 @@ public abstract class AbstractErrorWebExceptionHandler implements ErrorWebExcept } } + private boolean isDisconnectedClientError(Throwable ex) { + return DISCONNECTED_CLIENT_EXCEPTIONS.contains(ex.getClass().getSimpleName()) + || isDisconnectedClientErrorMessage(NestedExceptionUtils.getMostSpecificCause(ex).getMessage()); + } + + private boolean isDisconnectedClientErrorMessage(String message) { + message = (message != null) ? message.toLowerCase() : ""; + return (message.contains("broken pipe") || message.contains("connection reset by peer")); + } + private String formatError(Throwable ex, ServerRequest request) { String reason = ex.getClass().getSimpleName() + ": " + ex.getMessage(); return "Resolved [" + reason + "] for HTTP " + request.methodName() + " " + request.path();