GH-1075 Fix conversion of complex types

Resolves #1075
This commit is contained in:
Oleg Zhurakousky
2023-10-13 10:25:26 +02:00
parent 74d0d96101
commit 8e9948c4c3
2 changed files with 84 additions and 11 deletions

View File

@@ -1325,16 +1325,6 @@ public class SimpleFunctionRegistry implements FunctionRegistry {
return type;
}
/*
*
*/
private boolean isConversionHintRequired(Type actualType, Class<?> rawType) {
if (Collection.class.isAssignableFrom(rawType) || Map.class.isAssignableFrom(rawType)) {
return true;
}
return rawType != actualType && !FunctionTypeUtils.isMessage(actualType);
}
/*
*
*/
@@ -1362,7 +1352,7 @@ public class SimpleFunctionRegistry implements FunctionRegistry {
Class<?> rawType = FunctionTypeUtils.isMessage(type)
? FunctionTypeUtils.getRawType(itemType)
: FunctionTypeUtils.getRawType(type);
convertedInput = this.isConversionHintRequired(type, rawType)
convertedInput = type instanceof ParameterizedType
? SimpleFunctionRegistry.this.messageConverter.fromMessage(message, rawType, itemType)
: SimpleFunctionRegistry.this.messageConverter.fromMessage(message, rawType);