From 8fac135937d7006d872fccde06587cddeea5ed1b Mon Sep 17 00:00:00 2001 From: Oleg Zhurakousky Date: Thu, 5 Dec 2019 21:38:37 +0100 Subject: [PATCH] Quick fix in the logic to determine 'composed' flag --- .../context/catalog/BeanFactoryAwareFunctionRegistry.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/catalog/BeanFactoryAwareFunctionRegistry.java b/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/catalog/BeanFactoryAwareFunctionRegistry.java index 518e6f7e8..d50559f3d 100644 --- a/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/catalog/BeanFactoryAwareFunctionRegistry.java +++ b/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/catalog/BeanFactoryAwareFunctionRegistry.java @@ -449,9 +449,11 @@ public class BeanFactoryAwareFunctionRegistry FunctionInvocationWrapper(Object target, Type functionType, String functionDefinition, String... acceptedOutputMimeTypes) { this.target = target; - this.composed = !target.getClass().getName().contains("$$EnhancerBySpringCGLIB") + this.composed = target instanceof RoutingFunction || + (!target.getClass().getName().contains("$$EnhancerBySpringCGLIB") && !AopUtils.isAopProxy(target) && !AopUtils.isJdkDynamicProxy(target) - && target.getClass().getDeclaredFields().length > 1; + && target.getClass().getDeclaredFields().length > 1 + && target.getClass().isSynthetic()); this.functionType = functionType; this.acceptedOutputMimeTypes = acceptedOutputMimeTypes; this.functionDefinition = functionDefinition;