From 1df824db7c37f26c6c114e642c22183e53ba9386 Mon Sep 17 00:00:00 2001 From: Chris Eager Date: Fri, 12 Apr 2024 15:09:33 -0500 Subject: [PATCH] Remap some JsonMappingExceptions to 408 and 400 --- .../textsecuregcm/mappers/JsonMappingExceptionMapper.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/mappers/JsonMappingExceptionMapper.java b/service/src/main/java/org/whispersystems/textsecuregcm/mappers/JsonMappingExceptionMapper.java index 515a27296..59b9d4a6d 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/mappers/JsonMappingExceptionMapper.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/mappers/JsonMappingExceptionMapper.java @@ -3,10 +3,18 @@ package org.whispersystems.textsecuregcm.mappers; import com.fasterxml.jackson.databind.JsonMappingException; import javax.ws.rs.core.Response; import javax.ws.rs.ext.ExceptionMapper; +import java.util.concurrent.TimeoutException; public class JsonMappingExceptionMapper implements ExceptionMapper { @Override public Response toResponse(final JsonMappingException exception) { + if (exception.getCause() instanceof TimeoutException) { + return Response.status(Response.Status.REQUEST_TIMEOUT).build(); + } + if ("Early EOF".equals(exception.getMessage())) { + // Some sort of timeout or broken connection + return Response.status(Response.Status.BAD_REQUEST).build(); + } return Response.status(422).build(); } }