From bc5f4498327cedd5388e358bd1cebf92fd692d66 Mon Sep 17 00:00:00 2001 From: Oleg Zhurakousky Date: Thu, 23 Sep 2021 14:55:18 +0200 Subject: [PATCH] Fix handling of byte[] in MessageAwareJsonDecoder --- .../cloud/function/rsocket/MessageAwareJsonDecoder.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/spring-cloud-function-rsocket/src/main/java/org/springframework/cloud/function/rsocket/MessageAwareJsonDecoder.java b/spring-cloud-function-rsocket/src/main/java/org/springframework/cloud/function/rsocket/MessageAwareJsonDecoder.java index 2da6714a5..16cb4abc7 100644 --- a/spring-cloud-function-rsocket/src/main/java/org/springframework/cloud/function/rsocket/MessageAwareJsonDecoder.java +++ b/spring-cloud-function-rsocket/src/main/java/org/springframework/cloud/function/rsocket/MessageAwareJsonDecoder.java @@ -73,7 +73,8 @@ class MessageAwareJsonDecoder extends AbstractDecoder { if (messageMap.containsKey(FunctionRSocketUtils.PAYLOAD)) { Type requestedType = FunctionTypeUtils.getGenericType(targetType.getType()); Object payload; - if (String.class.isAssignableFrom(FunctionTypeUtils.getRawType(targetType.getType()))) { + if (String.class.isAssignableFrom(FunctionTypeUtils.getRawType(targetType.getType())) + || byte[].class.isAssignableFrom(FunctionTypeUtils.getRawType(targetType.getType()))) { Object rawPayload = messageMap.get(FunctionRSocketUtils.PAYLOAD); if (rawPayload instanceof byte[]) { payload = new String((byte[]) rawPayload, StandardCharsets.UTF_8);