From 2be70c58296d788aba4e6ad417f9d189aea5e7e5 Mon Sep 17 00:00:00 2001 From: Lars Bilger Date: Fri, 6 Jan 2023 13:00:15 +0100 Subject: [PATCH] fix: resolve function type from non-parameterized Kotlin class that implements a function type Resolves #925 Resolves #940 Resolves #956 Resolves #964 Resolves #982 --- .../context/config/FunctionContextUtils.java | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/config/FunctionContextUtils.java b/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/config/FunctionContextUtils.java index 241d0b18a..46a501436 100644 --- a/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/config/FunctionContextUtils.java +++ b/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/config/FunctionContextUtils.java @@ -75,16 +75,14 @@ public abstract class FunctionContextUtils { param = registry.getType(actualName); } - if (param != null) { - return param; + if (param == null) { + param = definition.getResolvableType().getType(); } - else { - Type t = definition.getResolvableType().getType(); - if (!(t instanceof ParameterizedType) && beanClass != null) { - return FunctionTypeUtils.discoverFunctionTypeFromClass(definition.getBeanClass()); - } - return t; + + if (!(param instanceof ParameterizedType) && beanClass != null) { + return FunctionTypeUtils.discoverFunctionTypeFromClass(beanClass); } + return param; } public static Class[] getParamTypesFromBeanDefinitionFactory(Class factory,