Skip to content

Commit 6328f2e

Browse files
committed
Polish "Make logError() in AbstractErrorWebExceptionHandler overrideable"
See gh-17863
1 parent 7ea612b commit 6328f2e

File tree

1 file changed

+19
-10
lines changed

1 file changed

+19
-10
lines changed

spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/reactive/error/AbstractErrorWebExceptionHandler.java

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -263,6 +263,25 @@ public Mono<Void> handle(ServerWebExchange exchange, Throwable throwable) {
263263
.flatMap((response) -> write(exchange, response));
264264
}
265265

266+
private boolean isDisconnectedClientError(Throwable ex) {
267+
return DISCONNECTED_CLIENT_EXCEPTIONS.contains(ex.getClass().getSimpleName())
268+
|| isDisconnectedClientErrorMessage(NestedExceptionUtils.getMostSpecificCause(ex).getMessage());
269+
}
270+
271+
private boolean isDisconnectedClientErrorMessage(String message) {
272+
message = (message != null) ? message.toLowerCase() : "";
273+
return (message.contains("broken pipe") || message.contains("connection reset by peer"));
274+
}
275+
276+
/**
277+
* Logs the {@code throwable} error for the given {@code request} and {@code response}
278+
* exchange. The default implementation logs all errors at debug level. Additionally,
279+
* any internal server error (500) is logged at error level.
280+
* @param request the request that was being handled
281+
* @param response the response that was being sent
282+
* @param throwable the error to be logged
283+
* @since 2.2.0
284+
*/
266285
protected void logError(ServerRequest request, ServerResponse response, Throwable throwable) {
267286
if (logger.isDebugEnabled()) {
268287
logger.debug(request.exchange().getLogPrefix() + formatError(throwable, request));
@@ -274,16 +293,6 @@ protected void logError(ServerRequest request, ServerResponse response, Throwabl
274293
}
275294
}
276295

277-
private boolean isDisconnectedClientError(Throwable ex) {
278-
return DISCONNECTED_CLIENT_EXCEPTIONS.contains(ex.getClass().getSimpleName())
279-
|| isDisconnectedClientErrorMessage(NestedExceptionUtils.getMostSpecificCause(ex).getMessage());
280-
}
281-
282-
private boolean isDisconnectedClientErrorMessage(String message) {
283-
message = (message != null) ? message.toLowerCase() : "";
284-
return (message.contains("broken pipe") || message.contains("connection reset by peer"));
285-
}
286-
287296
private String formatError(Throwable ex, ServerRequest request) {
288297
String reason = ex.getClass().getSimpleName() + ": " + ex.getMessage();
289298
return "Resolved [" + reason + "] for HTTP " + request.methodName() + " " + request.path();

0 commit comments

Comments
 (0)