From 4dcf0be7b352b8a7540998286fd49675b460f84d Mon Sep 17 00:00:00 2001 From: Oleg Zhurakousky Date: Wed, 11 Jan 2023 16:35:37 +0100 Subject: [PATCH] GH-985 Ensure PassThruFunction is not pre/post processed Resolves #985 --- .../function/context/catalog/SimpleFunctionRegistry.java | 4 ++-- 1 file changed, 2 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 2250e95dc..17b7c66dd 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 @@ -871,7 +871,7 @@ public class SimpleFunctionRegistry implements FunctionRegistry { inputValue = this.extractValueFromOriginalValueHolderIfNecessary(value); } - if (inputValue instanceof Message && !this.isInputTypeMessage()) { + if (!(this.target instanceof PassThruFunction) && inputValue instanceof Message && !this.isInputTypeMessage()) { inputValue = ((Message) inputValue).getPayload(); } @@ -1001,7 +1001,7 @@ public class SimpleFunctionRegistry implements FunctionRegistry { @SuppressWarnings("unchecked") private boolean isInputConversionNecessary(Object input, Type type) { - if (type == null || this.getRawClassFor(type) == Void.class || this.target instanceof RoutingFunction || this.isComposed()) { + if (type == null || this.getRawClassFor(type) == Void.class || this.target instanceof RoutingFunction || this.isComposed() || this.target instanceof PassThruFunction) { if (this.getRawClassFor(type) == Void.class) { if (input instanceof Message) { input = ((Message) input).getPayload();