From d23cb9b1fbf62d055de649b6aff0b5b8c462658a Mon Sep 17 00:00:00 2001 From: Oleg Zhurakousky Date: Wed, 21 Oct 2020 08:25:46 +0200 Subject: [PATCH] GH-2027 polishing --- .../stream/function/FunctionConfiguration.java | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/function/FunctionConfiguration.java b/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/function/FunctionConfiguration.java index 7f7938fe0..bacabf54d 100644 --- a/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/function/FunctionConfiguration.java +++ b/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/function/FunctionConfiguration.java @@ -171,6 +171,7 @@ public class FunctionConfiguration { return new InitializingBean() { + @SuppressWarnings("rawtypes") @Override public void afterPropertiesSet() throws Exception { for (BindableFunctionProxyFactory proxyFactory : proxyFactories) { @@ -199,12 +200,18 @@ public class FunctionConfiguration { .arrayToCommaDelimitedString(Arrays.copyOfRange(functionNames, 1, functionNames.length)); supplier = functionCatalog.lookup(supplierName); - function = functionCatalog.lookup(remainingFunctionDefinition); + function = functionCatalog.lookup(remainingFunctionDefinition, contentTypes.toArray(new String[0])); - functionWrapper = ((FunctionInvocationWrapper) function).isInputTypePublisher() - && ((FunctionInvocationWrapper) supplier).isOutputTypePublisher() - ? functionCatalog.lookup(proxyFactory.getFunctionDefinition(), contentTypes.toArray(new String[0])) - : null; + if (!((FunctionInvocationWrapper) supplier).isOutputTypePublisher() && + ((FunctionInvocationWrapper) function).isInputTypePublisher()) { + functionWrapper = null; + } + else { + functionWrapper = functionCatalog.lookup(proxyFactory.getFunctionDefinition(), contentTypes.toArray(new String[0])); + } + } + else { + functionWrapper = functionCatalog.lookup(proxyFactory.getFunctionDefinition(), contentTypes.toArray(new String[0])); } Publisher beginPublishingTrigger = setupBindingTrigger(context);