From 6fe8cb949fea77d931ffe99f1bceae2e135d22bc 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 392c83f897..18be614860 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 @@ -127,7 +127,7 @@ public class SynchronossPartHttpMessageReader implements HttpMessageReader 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()); @@ -165,7 +165,12 @@ public class SynchronossPartHttpMessageReader implements HttpMessageReader 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; } }