@@ -45,7 +45,7 @@ public void execute(
45
45
if (request .isAsyncSupported ()) {
46
46
invokeAndHandleAsync (invocationInput , request , response , listenerHandler );
47
47
} else {
48
- handle (invoke ( invocationInput , request , response ), request , response , listenerHandler ). join ( );
48
+ handle (invocationInput , request , response , listenerHandler );
49
49
}
50
50
}
51
51
@@ -83,7 +83,7 @@ private void invokeAndHandleAsync(
83
83
try {
84
84
FutureExecutionResult futureResult = invoke (invocationInput , request , response );
85
85
futureHolder .set (futureResult );
86
- handle (futureResult , request , response , listenerHandler )
86
+ handleInternal (futureResult , request , response , listenerHandler )
87
87
.thenAccept (it -> asyncContext .complete ());
88
88
} catch (GraphQLException e ) {
89
89
response .setStatus (STATUS_BAD_REQUEST );
@@ -99,7 +99,26 @@ private void invokeAndHandleAsync(
99
99
});
100
100
}
101
101
102
- private CompletableFuture <Void > handle (
102
+ private void handle (
103
+ GraphQLInvocationInput invocationInput ,
104
+ HttpServletRequest request ,
105
+ HttpServletResponse response ,
106
+ ListenerHandler listenerHandler ) {
107
+ try {
108
+ FutureExecutionResult futureResult = invoke (invocationInput , request , response );
109
+ handleInternal (futureResult , request , response , listenerHandler );
110
+ } catch (GraphQLException e ) {
111
+ response .setStatus (STATUS_BAD_REQUEST );
112
+ log .info ("Bad request: cannot handle http request" , e );
113
+ listenerHandler .onError (e );
114
+ } catch (Exception e ) {
115
+ response .setStatus (STATUS_INTERNAL_SERVER_ERROR );
116
+ log .error ("Cannot handle http request" , e );
117
+ listenerHandler .onError (e );
118
+ }
119
+ }
120
+
121
+ private CompletableFuture <Void > handleInternal (
103
122
FutureExecutionResult futureResult ,
104
123
HttpServletRequest request ,
105
124
HttpServletResponse response ,
0 commit comments