From 004813dfd27a918fe7fa3d7a8f44858df25eebf2 Mon Sep 17 00:00:00 2001 From: Oleg Zhurakousky Date: Thu, 1 Apr 2021 13:55:48 +0200 Subject: [PATCH] Fix NPE possibility for ConversionService not being present in the Bean Factory --- .../config/ContextFunctionCatalogAutoConfiguration.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/config/ContextFunctionCatalogAutoConfiguration.java b/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/config/ContextFunctionCatalogAutoConfiguration.java index 18fedf1e3..9f013a936 100644 --- a/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/config/ContextFunctionCatalogAutoConfiguration.java +++ b/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/config/ContextFunctionCatalogAutoConfiguration.java @@ -52,6 +52,7 @@ import org.springframework.context.annotation.FilterType; import org.springframework.context.expression.BeanFactoryResolver; import org.springframework.core.convert.converter.GenericConverter; import org.springframework.core.convert.support.ConfigurableConversionService; +import org.springframework.core.convert.support.DefaultConversionService; import org.springframework.lang.Nullable; import org.springframework.messaging.Message; import org.springframework.messaging.converter.ByteArrayMessageConverter; @@ -81,6 +82,9 @@ public class ContextFunctionCatalogAutoConfiguration { public FunctionRegistry functionCatalog(List messageConverters, JsonMapper jsonMapper, ConfigurableApplicationContext context, @Nullable FunctionInvocationHelper> functionInvocationHelper) { ConfigurableConversionService conversionService = (ConfigurableConversionService) context.getBeanFactory().getConversionService(); + if (conversionService == null) { + conversionService = new DefaultConversionService(); + } Map converters = context.getBeansOfType(GenericConverter.class); for (GenericConverter converter : converters.values()) { conversionService.addConverter(converter);