diff --git a/spring-web/src/main/java/org/springframework/http/codec/KotlinSerializationStringDecoder.java b/spring-web/src/main/java/org/springframework/http/codec/KotlinSerializationStringDecoder.java index 684df592298..2529a81997a 100644 --- a/spring-web/src/main/java/org/springframework/http/codec/KotlinSerializationStringDecoder.java +++ b/spring-web/src/main/java/org/springframework/http/codec/KotlinSerializationStringDecoder.java @@ -102,7 +102,7 @@ public abstract class KotlinSerializationStringDecoder e @Override public boolean canDecode(ResolvableType elementType, @Nullable MimeType mimeType) { - return canSerialize(elementType, mimeType); + return canSerialize(elementType, mimeType) && !CharSequence.class.isAssignableFrom(elementType.toClass()); } @Override diff --git a/spring-web/src/main/java/org/springframework/http/codec/KotlinSerializationStringEncoder.java b/spring-web/src/main/java/org/springframework/http/codec/KotlinSerializationStringEncoder.java index 18d7330b453..c9046bee552 100644 --- a/spring-web/src/main/java/org/springframework/http/codec/KotlinSerializationStringEncoder.java +++ b/spring-web/src/main/java/org/springframework/http/codec/KotlinSerializationStringEncoder.java @@ -101,7 +101,7 @@ public abstract class KotlinSerializationStringEncoder e @Override public boolean canEncode(ResolvableType elementType, @Nullable MimeType mimeType) { - return canSerialize(elementType, mimeType); + return canSerialize(elementType, mimeType) && !String.class.isAssignableFrom(elementType.toClass()); } @Override diff --git a/spring-web/src/main/java/org/springframework/http/codec/KotlinSerializationSupport.java b/spring-web/src/main/java/org/springframework/http/codec/KotlinSerializationSupport.java index 1d144926c0a..b69dae1253a 100644 --- a/spring-web/src/main/java/org/springframework/http/codec/KotlinSerializationSupport.java +++ b/spring-web/src/main/java/org/springframework/http/codec/KotlinSerializationSupport.java @@ -117,7 +117,7 @@ public abstract class KotlinSerializationSupport { if (!this.typePredicate.test(type) || ResolvableType.NONE.equals(type)) { return false; } - return serializer(type) != null && supports(mimeType); + return serializer(type) != null && supports(mimeType) && !ServerSentEvent.class.isAssignableFrom(type.toClass()); } private boolean supports(@Nullable MimeType mimeType) { diff --git a/spring-web/src/test/kotlin/org/springframework/http/codec/json/KotlinSerializationJsonDecoderTests.kt b/spring-web/src/test/kotlin/org/springframework/http/codec/json/KotlinSerializationJsonDecoderTests.kt index 10689531892..28c8f87ec5b 100644 --- a/spring-web/src/test/kotlin/org/springframework/http/codec/json/KotlinSerializationJsonDecoderTests.kt +++ b/spring-web/src/test/kotlin/org/springframework/http/codec/json/KotlinSerializationJsonDecoderTests.kt @@ -80,7 +80,7 @@ class KotlinSerializationJsonDecoderTests : AbstractDecoderTests