From 731417eb3f20af659241a6615f7469655d524e93 Mon Sep 17 00:00:00 2001 From: Rossen Stoyanchev Date: Fri, 14 May 2021 20:50:10 +0100 Subject: [PATCH] Unwrap CompletionException See gh-51 --- .../execution/ExceptionResolversExceptionHandler.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/spring-graphql/src/main/java/org/springframework/graphql/execution/ExceptionResolversExceptionHandler.java b/spring-graphql/src/main/java/org/springframework/graphql/execution/ExceptionResolversExceptionHandler.java index 4cf3f4b8..c2ef22a3 100644 --- a/spring-graphql/src/main/java/org/springframework/graphql/execution/ExceptionResolversExceptionHandler.java +++ b/spring-graphql/src/main/java/org/springframework/graphql/execution/ExceptionResolversExceptionHandler.java @@ -17,6 +17,7 @@ package org.springframework.graphql.execution; import java.util.ArrayList; import java.util.List; +import java.util.concurrent.CompletionException; import graphql.GraphQLError; import graphql.GraphqlErrorBuilder; @@ -48,7 +49,9 @@ class ExceptionResolversExceptionHandler implements DataFetcherExceptionHandler @Override public DataFetcherExceptionHandlerResult onException(DataFetcherExceptionHandlerParameters parameters) { - return invokeChain(parameters.getException(), parameters.getDataFetchingEnvironment()); + Throwable exception = parameters.getException(); + exception = (exception instanceof CompletionException ? exception.getCause() : exception); + return invokeChain(exception, parameters.getDataFetchingEnvironment()); } public DataFetcherExceptionHandlerResult invokeChain(Throwable ex, DataFetchingEnvironment env) {