From e8539e589a2d607a16461dbc64964560fbf99a39 Mon Sep 17 00:00:00 2001 From: Oleg Zhurakousky Date: Wed, 5 May 2021 15:40:25 +0200 Subject: [PATCH] GH-2160 Fix NPE in MessageConverterConfigurer Resolves #2160 --- .../stream/binding/MessageConverterConfigurer.java | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/binding/MessageConverterConfigurer.java b/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/binding/MessageConverterConfigurer.java index a08a04681..d9355de8f 100644 --- a/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/binding/MessageConverterConfigurer.java +++ b/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/binding/MessageConverterConfigurer.java @@ -163,9 +163,7 @@ public class MessageConverterConfigurer } else { if (environment != null && environment.containsProperty("spring.cloud.stream.rabbit.bindings." + channelName + ".producer.routing-key-expression")) { - FunctionCatalog catalog = this.beanFactory.getBean(FunctionCatalog.class); - FunctionInvocationWrapper function = catalog.lookup(this.streamFunctionProperties.getDefinition()); - function.setSkipOutputConversion(true); + this.setSkipOutputConversionIfNecessary(); functional = false; } if (!functional) { @@ -175,6 +173,16 @@ public class MessageConverterConfigurer } } + private void setSkipOutputConversionIfNecessary() { + FunctionCatalog catalog = this.beanFactory.getBean(FunctionCatalog.class); + if (catalog != null) { + FunctionInvocationWrapper function = catalog.lookup(this.streamFunctionProperties.getDefinition()); + if (function != null) { + function.setSkipOutputConversion(true); + } + } + } + private boolean isNativeEncodingNotSet(ProducerProperties producerProperties, ConsumerProperties consumerProperties, boolean input) { if (input) {