From 8cebe20a562a615f8744d816827cb17cdab8df03 Mon Sep 17 00:00:00 2001 From: Rossen Stoyanchev Date: Mon, 30 Aug 2021 16:49:28 +0100 Subject: [PATCH] Defensively build GraphQLError GraphqlErrorBuilder expects a non-null error message so we need to check if the exception has one, or otherwise the resulting assert error masks the original one. --- .../execution/ExceptionResolversExceptionHandler.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) 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 ac05f2f7..2b7cb3b6 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 @@ -33,6 +33,7 @@ import reactor.core.publisher.Mono; import reactor.util.context.ContextView; import org.springframework.util.Assert; +import org.springframework.util.StringUtils; import org.springframework.web.client.ExtractingResponseErrorHandler; /** @@ -88,11 +89,11 @@ class ExceptionResolversExceptionHandler implements DataFetcherExceptionHandler } private DataFetcherExceptionHandlerResult applyDefaultHandling(Throwable ex, DataFetchingEnvironment env) { - GraphQLError error = GraphqlErrorBuilder.newError(env) - .message(ex.getMessage()) - .errorType(ErrorType.INTERNAL_ERROR) - .build(); - return DataFetcherExceptionHandlerResult.newResult(error).build(); + GraphqlErrorBuilder errorBuilder = GraphqlErrorBuilder.newError(env).errorType(ErrorType.INTERNAL_ERROR); + if (StringUtils.hasText(ex.getMessage())) { + errorBuilder.message(ex.getMessage()); + } + return DataFetcherExceptionHandlerResult.newResult(errorBuilder.build()).build(); } }