diff --git a/spring-cloud-function-rsocket/src/main/java/org/springframework/cloud/function/rsocket/FunctionRSocketMessageHandler.java b/spring-cloud-function-rsocket/src/main/java/org/springframework/cloud/function/rsocket/FunctionRSocketMessageHandler.java index 2507c9921..a61e006f0 100644 --- a/spring-cloud-function-rsocket/src/main/java/org/springframework/cloud/function/rsocket/FunctionRSocketMessageHandler.java +++ b/spring-cloud-function-rsocket/src/main/java/org/springframework/cloud/function/rsocket/FunctionRSocketMessageHandler.java @@ -248,24 +248,17 @@ class FunctionRSocketMessageHandler extends RSocketMessageHandler { ? Flux.just((DataBuffer) payload) : Flux.from((Publisher) payload); - if (MimeTypeUtils.APPLICATION_JSON_VALUE.equals(message.getHeaders().get(MessageHeaders.CONTENT_TYPE).toString())) { + if (message.getHeaders().containsKey(MessageHeaders.CONTENT_TYPE) + && MimeTypeUtils.APPLICATION_JSON_VALUE.equals(message.getHeaders().get(MessageHeaders.CONTENT_TYPE).toString())) { Flux argument = data.map(buffer -> { byte[] bytePayload = this.decoder.decode(buffer, ResolvableType.forType(byte[].class), null, null); if (JsonMapper.isJsonString(bytePayload)) { // // could be array, map or string Object structure = this.jsonMapper.fromJson(bytePayload, Object.class); - if (structure instanceof Map) { - if (((Map) structure).containsKey(FunctionRSocketUtils.PAYLOAD)) { - return MessageBuilder.withPayload(((Map) structure).remove(FunctionRSocketUtils.PAYLOAD)) - .copyHeaders((Map) ((Map) structure).get(FunctionRSocketUtils.HEADERS)) - .build(); - } - else { - return MessageBuilder.withPayload(structure).build(); - } - } - else { - return MessageBuilder.withPayload(structure).build(); + if (structure instanceof Map && ((Map) structure).containsKey(FunctionRSocketUtils.PAYLOAD)) { + return MessageBuilder.withPayload(((Map) structure).remove(FunctionRSocketUtils.PAYLOAD)) + .copyHeaders((Map) ((Map) structure).get(FunctionRSocketUtils.HEADERS)) + .build(); } } return MessageBuilder.withPayload(bytePayload).copyHeadersIfAbsent(message.getHeaders()).build();