From bda272393342ab805078217a4512cefadf0ab4c5 Mon Sep 17 00:00:00 2001 From: Rossen Stoyanchev Date: Thu, 4 May 2017 13:30:56 -0400 Subject: [PATCH] Correct charset determination in Synchronoss reader --- .../SynchronossPartHttpMessageReader.java | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) 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 e50a6c96617..a2713254ab5 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 @@ -121,7 +121,12 @@ public class SynchronossPartHttpMessageReader implements HttpMessageReader @Override public void accept(FluxSink emitter) { - MultipartContext context = createMultipartContext(); + HttpHeaders headers = this.inputMessage.getHeaders(); + MediaType mediaType = headers.getContentType(); + int length = Math.toIntExact(headers.getContentLength()); + Charset charset = Optional.ofNullable(mediaType.getCharset()).orElse(StandardCharsets.UTF_8); + MultipartContext context = new MultipartContext(mediaType.toString(), length, charset.name()); + NioMultipartParserListener listener = new FluxSinkAdapterListener(emitter, this.bufferFactory); NioMultipartParser parser = Multipart.multipart(context).forNIO(listener); @@ -152,16 +157,6 @@ public class SynchronossPartHttpMessageReader implements HttpMessageReader }); } - - private MultipartContext createMultipartContext() { - HttpHeaders headers = this.inputMessage.getHeaders(); - String contentType = headers.getContentType().toString(); - int contentLength = Math.toIntExact(headers.getContentLength()); - String charset = headers.getFirst(HttpHeaders.ACCEPT_CHARSET); - return new MultipartContext(contentType, contentLength, charset); - } - - } /** * Listen for parser output and adapt to {@code Flux>}.