Skip to content

Commit 384cd85

Browse files
committed
Fix previous commit's byte[] handling
1 parent f79e907 commit 384cd85

File tree

1 file changed

+23
-2
lines changed

1 file changed

+23
-2
lines changed

Diff for: spring-cloud-function-rsocket/src/main/java/org/springframework/cloud/function/rsocket/MessageAwareJsonDecoder.java

+23-2
Original file line numberDiff line numberDiff line change
@@ -73,8 +73,7 @@ public Object decode(DataBuffer dataBuffer, ResolvableType targetType,
7373
if (messageMap.containsKey(FunctionRSocketUtils.PAYLOAD)) {
7474
Type requestedType = FunctionTypeUtils.getGenericType(targetType.getType());
7575
Object payload;
76-
if (String.class.isAssignableFrom(FunctionTypeUtils.getRawType(targetType.getType()))
77-
|| byte[].class.isAssignableFrom(FunctionTypeUtils.getRawType(targetType.getType()))) {
76+
if (String.class.isAssignableFrom(FunctionTypeUtils.getRawType(targetType.getType()))) {
7877
Object rawPayload = messageMap.get(FunctionRSocketUtils.PAYLOAD);
7978
if (rawPayload instanceof byte[]) {
8079
payload = new String((byte[]) rawPayload, StandardCharsets.UTF_8);
@@ -83,9 +82,31 @@ public Object decode(DataBuffer dataBuffer, ResolvableType targetType,
8382
payload = rawPayload;
8483
}
8584
}
85+
else if (byte[].class.isAssignableFrom(FunctionTypeUtils.getRawType(targetType.getType()))) {
86+
Object rawPayload = messageMap.get(FunctionRSocketUtils.PAYLOAD);
87+
if (rawPayload instanceof String) {
88+
payload = ((String) rawPayload).getBytes(StandardCharsets.UTF_8);
89+
}
90+
else {
91+
payload = rawPayload;
92+
}
93+
}
8694
else {
8795
payload = this.jsonMapper.fromJson(messageMap.get(FunctionRSocketUtils.PAYLOAD), requestedType);
8896
}
97+
// if (String.class.isAssignableFrom(FunctionTypeUtils.getRawType(targetType.getType()))
98+
// || byte[].class.isAssignableFrom(FunctionTypeUtils.getRawType(targetType.getType()))) {
99+
// Object rawPayload = messageMap.get(FunctionRSocketUtils.PAYLOAD);
100+
// if (rawPayload instanceof byte[]) {
101+
// payload = new String((byte[]) rawPayload, StandardCharsets.UTF_8);
102+
// }
103+
// else {
104+
// payload = rawPayload;
105+
// }
106+
// }
107+
// else {
108+
// payload = this.jsonMapper.fromJson(messageMap.get(FunctionRSocketUtils.PAYLOAD), requestedType);
109+
// }
89110

90111
if (FunctionTypeUtils.isMessage(targetType.getType())) {
91112
return MessageBuilder.withPayload(payload).copyHeaders(

0 commit comments

Comments
 (0)