From f5c17b52d37d7aeec33fd2e13c92c455ee2d48c5 Mon Sep 17 00:00:00 2001 From: Rossen Stoyanchev Date: Tue, 2 Nov 2021 14:50:25 +0000 Subject: [PATCH] Filter Kotlin Continuation in BatchLoaderHandlerMethod Closes gh-174 --- .../support/BatchLoaderHandlerMethod.java | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/spring-graphql/src/main/java/org/springframework/graphql/data/method/annotation/support/BatchLoaderHandlerMethod.java b/spring-graphql/src/main/java/org/springframework/graphql/data/method/annotation/support/BatchLoaderHandlerMethod.java index 17f6f457..f6923390 100644 --- a/spring-graphql/src/main/java/org/springframework/graphql/data/method/annotation/support/BatchLoaderHandlerMethod.java +++ b/spring-graphql/src/main/java/org/springframework/graphql/data/method/annotation/support/BatchLoaderHandlerMethod.java @@ -86,7 +86,8 @@ public class BatchLoaderHandlerMethod extends InvocableHandlerMethodSupport { return result; } - public Object resolveArgument( + @Nullable + private Object resolveArgument( MethodParameter parameter, Collection keys, BatchLoaderEnvironment environment) { Class parameterType = parameter.getParameterType(); @@ -100,12 +101,15 @@ public class BatchLoaderHandlerMethod extends InvocableHandlerMethodSupport { collection.addAll(keys); return collection; } - - if (parameterType.isInstance(environment)) { + else if (parameterType.isInstance(environment)) { return environment; } - - throw new IllegalStateException(formatArgumentError(parameter, "Unexpected argument type.")); + else if ("kotlin.coroutines.Continuation".equals(parameterType.getName())) { + return null; + } + else { + throw new IllegalStateException(formatArgumentError(parameter, "Unexpected argument type.")); + } } }