From 5a43e94ebecdb6fe6f2ba1c98f6088bd7c01f3a8 Mon Sep 17 00:00:00 2001 From: Oleg Zhurakousky Date: Thu, 4 Mar 2021 15:56:02 +0100 Subject: [PATCH] GH-661 Fix KafkaNull as input type conversion Basically KafkaNull gets a special treatement where if we see it as Message payload and input type of the function is Message we give it as is and if the input type is POJO then we simply return null Resolves #661 --- .../function/context/catalog/SimpleFunctionRegistry.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/catalog/SimpleFunctionRegistry.java b/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/catalog/SimpleFunctionRegistry.java index ecf25b11a..e38c27b67 100644 --- a/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/catalog/SimpleFunctionRegistry.java +++ b/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/catalog/SimpleFunctionRegistry.java @@ -853,9 +853,8 @@ public class SimpleFunctionRegistry implements FunctionRegistry, FunctionInspect : new OriginalMessageHolder(((Message) input).getPayload(), (Message) input); } else if (input instanceof Message) { - if (((Message) input).getPayload().getClass().getName().equals("org.springframework.kafka.support.KafkaNull") - && !this.isInputTypeMessage()) { //TODO rework - return ((Message) input).getPayload(); + if (((Message) input).getPayload().getClass().getName().equals("org.springframework.kafka.support.KafkaNull")) { + return FunctionTypeUtils.isMessage(type) ? input : null; } if (functionInvocationHelper != null) {