From 9064ef59f90dc4ee0fad390ad306fbf4b6ee3576 Mon Sep 17 00:00:00 2001 From: Rossen Stoyanchev Date: Fri, 5 Oct 2018 12:12:49 -0400 Subject: [PATCH] Workaround for Synchronoss content-length limitation Issue: SPR-17345 --- .../codec/multipart/SynchronossPartHttpMessageReader.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/spring-web/src/main/java/org/springframework/http/codec/multipart/SynchronossPartHttpMessageReader.java b/spring-web/src/main/java/org/springframework/http/codec/multipart/SynchronossPartHttpMessageReader.java index a41db131a0..2e2e7c8660 100644 --- a/spring-web/src/main/java/org/springframework/http/codec/multipart/SynchronossPartHttpMessageReader.java +++ b/spring-web/src/main/java/org/springframework/http/codec/multipart/SynchronossPartHttpMessageReader.java @@ -138,7 +138,7 @@ public class SynchronossPartHttpMessageReader extends LoggingCodecSupport implem MediaType mediaType = headers.getContentType(); Assert.state(mediaType != null, "No content type set"); - int length = Math.toIntExact(headers.getContentLength()); + int length = getContentLength(headers); Charset charset = Optional.ofNullable(mediaType.getCharset()).orElse(StandardCharsets.UTF_8); MultipartContext context = new MultipartContext(mediaType.toString(), length, charset.name()); @@ -176,7 +176,12 @@ public class SynchronossPartHttpMessageReader extends LoggingCodecSupport implem listener.onError("Exception thrown while closing the parser", ex); } }); + } + private int getContentLength(HttpHeaders headers) { + // Until this is fixed https://github.com/synchronoss/nio-multipart/issues/10 + long length = headers.getContentLength(); + return (int) length == length ? (int) length : -1; } }