@@ -45,7 +45,7 @@ public void execute(
4545 if (request .isAsyncSupported ()) {
4646 invokeAndHandleAsync (invocationInput , request , response , listenerHandler );
4747 } else {
48- handle (invoke ( invocationInput , request , response ), request , response , listenerHandler ). join ( );
48+ handle (invocationInput , request , response , listenerHandler );
4949 }
5050 }
5151
@@ -83,7 +83,7 @@ private void invokeAndHandleAsync(
8383 try {
8484 FutureExecutionResult futureResult = invoke (invocationInput , request , response );
8585 futureHolder .set (futureResult );
86- handle (futureResult , request , response , listenerHandler )
86+ handleInternal (futureResult , request , response , listenerHandler )
8787 .thenAccept (it -> asyncContext .complete ());
8888 } catch (GraphQLException e ) {
8989 response .setStatus (STATUS_BAD_REQUEST );
@@ -99,7 +99,26 @@ private void invokeAndHandleAsync(
9999 });
100100 }
101101
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 (
103122 FutureExecutionResult futureResult ,
104123 HttpServletRequest request ,
105124 HttpServletResponse response ,
0 commit comments