From af232a14560bae724e4272389e9680d969a41f7a Mon Sep 17 00:00:00 2001 From: Geovanne Duarte Date: Tue, 15 Oct 2024 14:36:27 -0300 Subject: [PATCH] fix: avoid modifying the response after it has been already committed --- .../mx/path/model/mdx/web/filter/ErrorHandler.java | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/mdx-web/src/main/java/com/mx/path/model/mdx/web/filter/ErrorHandler.java b/mdx-web/src/main/java/com/mx/path/model/mdx/web/filter/ErrorHandler.java index cde1f88c..eb28e2b6 100644 --- a/mdx-web/src/main/java/com/mx/path/model/mdx/web/filter/ErrorHandler.java +++ b/mdx-web/src/main/java/com/mx/path/model/mdx/web/filter/ErrorHandler.java @@ -98,10 +98,16 @@ public final void handleException(Exception ex, HttpServletResponse response, Ht ExceptionFormatter.convertToPathRequestException(ex, response)); } - // Temporarily put back error response writer. - // This fails when a filter fails. - // HttpServletResponse resp = response; - response.reset(); + try { + if (!response.isCommitted()) { + response.reset(); + } + } catch (IllegalStateException ignored) { + // Ignoring the exception since the response has been already committed + LOGGER.warn("Response already committed, cannot reset or modify."); + return; + } + response.setStatus(status.value()); response.setContentType("application/vnd.mx.mdx.v6+json");