22
33import graphql .ExceptionWhileDataFetching ;
44import graphql .GraphQLError ;
5+ import graphql .execution .NonNullableFieldWasNullError ;
56import org .slf4j .Logger ;
67import org .slf4j .LoggerFactory ;
78
@@ -24,25 +25,26 @@ public List<GraphQLError> processErrors(List<GraphQLError> errors) {
2425 clientErrors .add (new GenericGraphQLError ("Internal Server Error(s) while executing query" ));
2526
2627 errors .stream ()
27- .filter (error -> !isClientError (error ))
28- .forEach (error -> {
29- if (error instanceof Throwable ) {
30- log .error ("Error executing query!" , (Throwable ) error );
31- } else if (error instanceof ExceptionWhileDataFetching ) {
32- log .error ("Error executing query {}" , error .getMessage (), ((ExceptionWhileDataFetching ) error ).getException ());
33- } else {
34- log .error ("Error executing query ({}): {}" , error .getClass ().getSimpleName (), error .getMessage ());
35- }
36- });
28+ .filter (error -> !isClientError (error ))
29+ .forEach (error -> {
30+ if (error instanceof Throwable ) {
31+ log .error ("Error executing query!" , (Throwable ) error );
32+ } else if (error instanceof ExceptionWhileDataFetching ) {
33+ log .error ("Error executing query {}" , error .getMessage (), ((ExceptionWhileDataFetching ) error ).getException ());
34+ } else {
35+ log .error ("Error executing query ({}): {}" , error .getClass ().getSimpleName (), error .getMessage ());
36+ }
37+ });
3738 }
3839
3940 return clientErrors ;
4041 }
4142
4243 protected List <GraphQLError > filterGraphQLErrors (List <GraphQLError > errors ) {
4344 return errors .stream ()
44- .filter (this ::isClientError )
45- .collect (Collectors .toList ());
45+ .filter (this ::isClientError )
46+ .map (this ::replaceNonNullableFieldWasNullError )
47+ .collect (Collectors .toList ());
4648 }
4749
4850 protected boolean isClientError (GraphQLError error ) {
@@ -51,4 +53,12 @@ protected boolean isClientError(GraphQLError error) {
5153 }
5254 return !(error instanceof Throwable );
5355 }
56+
57+ private GraphQLError replaceNonNullableFieldWasNullError (GraphQLError error ) {
58+ if (error instanceof NonNullableFieldWasNullError ) {
59+ return new RenderableNonNullableFieldWasNullError ((NonNullableFieldWasNullError ) error );
60+ } else {
61+ return error ;
62+ }
63+ }
5464}
0 commit comments