Skip to content

Commit c0b22ac

Browse files
committed
Rethrow caught exceptions to allow listeners to adjust response
fix #201, fix #129
1 parent 44cef3f commit c0b22ac

File tree

2 files changed

+4
-2
lines changed

2 files changed

+4
-2
lines changed

src/main/java/graphql/servlet/AbstractGraphQLHttpServlet.java

-1
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,6 @@ private void doRequest(HttpServletRequest request, HttpServletResponse response,
143143
handler.handle(request, response);
144144
runCallbacks(requestCallbacks, c -> c.onSuccess(request, response));
145145
} catch (Throwable t) {
146-
response.setStatus(500);
147146
log.error("Error executing GraphQL request!", t);
148147
runCallbacks(requestCallbacks, c -> c.onError(request, response, t));
149148
} finally {

src/main/java/graphql/servlet/HttpRequestHandlerImpl.java

+4-1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import graphql.servlet.input.GraphQLBatchedInvocationInput;
1111
import graphql.servlet.input.GraphQLInvocationInput;
1212
import graphql.servlet.input.GraphQLSingleInvocationInput;
13+
import java.io.IOException;
1314
import javax.servlet.http.HttpServletRequest;
1415
import javax.servlet.http.HttpServletResponse;
1516
import lombok.extern.slf4j.Slf4j;
@@ -26,7 +27,7 @@ class HttpRequestHandlerImpl implements HttpRequestHandler {
2627
}
2728

2829
@Override
29-
public void handle(HttpServletRequest request, HttpServletResponse response) {
30+
public void handle(HttpServletRequest request, HttpServletResponse response) throws IOException {
3031
try {
3132
GraphQLInvocationInputParser invocationInputParser = GraphQLInvocationInputParser.create(
3233
request,
@@ -39,9 +40,11 @@ public void handle(HttpServletRequest request, HttpServletResponse response) {
3940
} catch (GraphQLException e) {
4041
response.setStatus(STATUS_BAD_REQUEST);
4142
log.info("Bad request: cannot create invocation input parser", e);
43+
throw e;
4244
} catch (Throwable t) {
4345
response.setStatus(500);
4446
log.info("Bad request: cannot create invocation input parser", t);
47+
throw t;
4548
}
4649
}
4750

0 commit comments

Comments
 (0)