From 719ac8fdab2d2610897af894cbe6f8b88f9bd50c Mon Sep 17 00:00:00 2001 From: rstoyanchev Date: Wed, 26 Jun 2024 17:03:55 +0100 Subject: [PATCH] Improve Kotlin List detection for EntityMapping methods Closes gh-1018 --- .../EntityArgumentsMethodArgumentResolver.java | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/spring-graphql/src/main/java/org/springframework/graphql/data/federation/EntityArgumentsMethodArgumentResolver.java b/spring-graphql/src/main/java/org/springframework/graphql/data/federation/EntityArgumentsMethodArgumentResolver.java index 675f58c6..767d7c64 100644 --- a/spring-graphql/src/main/java/org/springframework/graphql/data/federation/EntityArgumentsMethodArgumentResolver.java +++ b/spring-graphql/src/main/java/org/springframework/graphql/data/federation/EntityArgumentsMethodArgumentResolver.java @@ -48,13 +48,15 @@ final class EntityArgumentsMethodArgumentResolver implements HandlerMethodArgume @Override public boolean supportsParameter(MethodParameter param) { - if (param.getParameterType().equals(List.class)) { - param = param.nested(0); + Class type = param.getParameterType(); + if (List.class.isAssignableFrom(param.getParameterType())) { + type = param.nested().getNestedParameterType(); + if (Object.class.equals(type)) { + // Maybe a Kotlin List + type = ResolvableType.forMethodParameter(param).getNested(2).resolve(Object.class); + } } - if (param.getNestedParameterType().equals(Map.class)) { - return param.nested(0).getNestedParameterType().equals(String.class); - } - return false; + return Map.class.isAssignableFrom(type); } @Override