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 d1d84d437..fa9b81ac7 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 @@ -374,13 +374,14 @@ public class FunctionConfiguration { } else { String inputDestinationName = inputBindingNames.iterator().next(); - //this.adjustFunctionForNativeEncodingIfNecessary(); - ServiceActivatingHandler handler = createFunctionHandler(function, inputDestinationName, outputDestinationName); - if (!FunctionTypeUtils.isConsumer(function.getFunctionType())) { - handler.setOutputChannelName(outputDestinationName); + Object inputDestination = this.applicationContext.getBean(inputDestinationName); + if (inputDestination != null && inputDestination instanceof SubscribableChannel) { + ServiceActivatingHandler handler = createFunctionHandler(function, inputDestinationName, outputDestinationName); + if (!FunctionTypeUtils.isConsumer(function.getFunctionType())) { + handler.setOutputChannelName(outputDestinationName); + } + ((SubscribableChannel) inputDestination).subscribe(handler); } - SubscribableChannel inputChannel = this.applicationContext.getBean(inputDestinationName, SubscribableChannel.class); - inputChannel.subscribe(handler); } } }