From 40c208c124ea45170464638e019684c0c5f1b882 Mon Sep 17 00:00:00 2001 From: Oleg Zhurakousky Date: Wed, 22 Apr 2020 13:56:32 +0200 Subject: [PATCH] Fix condition for payload extraction before invocation We need to only extract payload for cases where input is coming from SCF-Web --- .../cloud/function/context/catalog/SimpleFunctionRegistry.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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 4125a7abe..8ce72b036 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 @@ -524,7 +524,8 @@ 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(); }