diff --git a/spring-web/src/main/java/org/springframework/http/codec/json/AbstractJackson2Encoder.java b/spring-web/src/main/java/org/springframework/http/codec/json/AbstractJackson2Encoder.java index 29f8fc78925..0cf1d3f0218 100644 --- a/spring-web/src/main/java/org/springframework/http/codec/json/AbstractJackson2Encoder.java +++ b/spring-web/src/main/java/org/springframework/http/codec/json/AbstractJackson2Encoder.java @@ -69,7 +69,7 @@ public abstract class AbstractJackson2Encoder extends Jackson2CodecSupport imple private static final Map STREAM_SEPARATORS; - private static final Map ENCODINGS; + private static final Map ENCODINGS; static { STREAM_SEPARATORS = new HashMap<>(4); @@ -78,8 +78,7 @@ public abstract class AbstractJackson2Encoder extends Jackson2CodecSupport imple ENCODINGS = new HashMap<>(JsonEncoding.values().length); for (JsonEncoding encoding : JsonEncoding.values()) { - Charset charset = Charset.forName(encoding.getJavaName()); - ENCODINGS.put(charset, encoding); + ENCODINGS.put(encoding.getJavaName(), encoding); } } @@ -116,7 +115,7 @@ public abstract class AbstractJackson2Encoder extends Jackson2CodecSupport imple } if (mimeType != null && mimeType.getCharset() != null) { Charset charset = mimeType.getCharset(); - if (!ENCODINGS.containsKey(charset)) { + if (!ENCODINGS.containsKey(charset.name())) { return false; } } @@ -286,7 +285,7 @@ public abstract class AbstractJackson2Encoder extends Jackson2CodecSupport imple protected JsonEncoding getJsonEncoding(@Nullable MimeType mimeType) { if (mimeType != null && mimeType.getCharset() != null) { Charset charset = mimeType.getCharset(); - JsonEncoding result = ENCODINGS.get(charset); + JsonEncoding result = ENCODINGS.get(charset.name()); if (result != null) { return result; } diff --git a/spring-web/src/main/java/org/springframework/http/converter/json/AbstractJackson2HttpMessageConverter.java b/spring-web/src/main/java/org/springframework/http/converter/json/AbstractJackson2HttpMessageConverter.java index eb3d3bf9fc1..c9df1273673 100644 --- a/spring-web/src/main/java/org/springframework/http/converter/json/AbstractJackson2HttpMessageConverter.java +++ b/spring-web/src/main/java/org/springframework/http/converter/json/AbstractJackson2HttpMessageConverter.java @@ -76,7 +76,7 @@ import org.springframework.util.TypeUtils; */ public abstract class AbstractJackson2HttpMessageConverter extends AbstractGenericHttpMessageConverter { - private static final Map ENCODINGS = jsonEncodings(); + private static final Map ENCODINGS = jsonEncodings(); /** * The default charset used by the converter. @@ -183,7 +183,7 @@ public abstract class AbstractJackson2HttpMessageConverter extends AbstractGener } if (mediaType != null && mediaType.getCharset() != null) { Charset charset = mediaType.getCharset(); - if (!ENCODINGS.containsKey(charset)) { + if (!ENCODINGS.containsKey(charset.name())) { return false; } } @@ -246,7 +246,7 @@ public abstract class AbstractJackson2HttpMessageConverter extends AbstractGener MediaType contentType = inputMessage.getHeaders().getContentType(); Charset charset = getCharset(contentType); - boolean isUnicode = ENCODINGS.containsKey(charset); + boolean isUnicode = ENCODINGS.containsKey(charset.name()); try { if (inputMessage instanceof MappingJacksonInputMessage) { Class deserializationView = ((MappingJacksonInputMessage) inputMessage).getDeserializationView(); @@ -373,7 +373,7 @@ public abstract class AbstractJackson2HttpMessageConverter extends AbstractGener protected JsonEncoding getJsonEncoding(@Nullable MediaType contentType) { if (contentType != null && contentType.getCharset() != null) { Charset charset = contentType.getCharset(); - JsonEncoding encoding = ENCODINGS.get(charset); + JsonEncoding encoding = ENCODINGS.get(charset.name()); if (encoding != null) { return encoding; } @@ -398,9 +398,9 @@ public abstract class AbstractJackson2HttpMessageConverter extends AbstractGener return super.getContentLength(object, contentType); } - private static Map jsonEncodings() { + private static Map jsonEncodings() { return EnumSet.allOf(JsonEncoding.class).stream() - .collect(Collectors.toMap(encoding -> Charset.forName(encoding.getJavaName()), Function.identity())); + .collect(Collectors.toMap(JsonEncoding::getJavaName, Function.identity())); } }