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 c043cc60609..0437c5cbb33 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; } } @@ -287,7 +286,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 01de325ff1d..d52b376ae8f 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. @@ -184,7 +184,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; } } @@ -247,7 +247,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(); @@ -374,7 +374,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; } @@ -399,9 +399,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())); } }