From 07e4de71d2215c6afee3a8912edd78f8ea5599f3 Mon Sep 17 00:00:00 2001 From: Oleg Zhurakousky Date: Thu, 7 May 2020 09:26:58 +0200 Subject: [PATCH] Fix Message unwrapping condition --- .../function/context/catalog/SimpleFunctionRegistry.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 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 989f39e03..69ba28055 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 @@ -47,7 +47,6 @@ import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; import reactor.util.function.Tuples; - import org.springframework.aop.framework.ProxyFactory; import org.springframework.aop.support.AopUtils; import org.springframework.beans.factory.BeanFactory; @@ -75,6 +74,8 @@ import org.springframework.util.ReflectionUtils; import org.springframework.util.StringUtils; + + /** * * Basic implementation of FunctionRegistry which maintains the cache of registered functions while @@ -532,7 +533,9 @@ public class SimpleFunctionRegistry implements FunctionRegistry, FunctionInspect private Object invokeFunction(Object input) { Message incomingMessage = null; if (!this.functionDefinition.startsWith(RoutingFunction.FUNCTION_NAME)) { - if (input instanceof Message && !FunctionTypeUtils.isMessage(FunctionTypeUtils.getInputType(functionType, 0))) { + if (input instanceof Message + && !FunctionTypeUtils.isMessage(FunctionTypeUtils.getInputType(functionType, 0)) + && ((Message) input).getHeaders().containsKey("scf-func-name")) { incomingMessage = (Message) input; input = incomingMessage.getPayload(); }