Skip to content

Commit 36ce5ff

Browse files
committed
Null check on configuration before adding listener fix #164
1 parent 0cc21fd commit 36ce5ff

File tree

1 file changed

+24
-7
lines changed

1 file changed

+24
-7
lines changed

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

+24-7
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,11 @@
1313
import org.slf4j.Logger;
1414
import org.slf4j.LoggerFactory;
1515

16-
import javax.servlet.*;
16+
import javax.servlet.AsyncContext;
17+
import javax.servlet.AsyncEvent;
18+
import javax.servlet.AsyncListener;
19+
import javax.servlet.Servlet;
20+
import javax.servlet.ServletException;
1721
import javax.servlet.http.HttpServlet;
1822
import javax.servlet.http.HttpServletRequest;
1923
import javax.servlet.http.HttpServletResponse;
@@ -264,11 +268,19 @@ private void mapMultipartVariables(GraphQLRequest request,
264268
}
265269

266270
public void addListener(GraphQLServletListener servletListener) {
267-
configuration.add(servletListener);
271+
if (configuration != null) {
272+
configuration.add(servletListener);
273+
} else {
274+
listeners.add(servletListener);
275+
}
268276
}
269277

270278
public void removeListener(GraphQLServletListener servletListener) {
271-
configuration.remove(servletListener);
279+
if (configuration != null) {
280+
configuration.remove(servletListener);
281+
} else {
282+
listeners.remove(servletListener);
283+
}
272284
}
273285

274286
@Override
@@ -454,23 +466,28 @@ default void accept(HttpServletRequest request, HttpServletResponse response) {
454466

455467
private static class SubscriptionAsyncListener implements AsyncListener {
456468
private final AtomicReference<Subscription> subscriptionRef;
469+
457470
public SubscriptionAsyncListener(AtomicReference<Subscription> subscriptionRef) {
458471
this.subscriptionRef = subscriptionRef;
459472
}
460473

461-
@Override public void onComplete(AsyncEvent event) {
474+
@Override
475+
public void onComplete(AsyncEvent event) {
462476
subscriptionRef.get().cancel();
463477
}
464478

465-
@Override public void onTimeout(AsyncEvent event) {
479+
@Override
480+
public void onTimeout(AsyncEvent event) {
466481
subscriptionRef.get().cancel();
467482
}
468483

469-
@Override public void onError(AsyncEvent event) {
484+
@Override
485+
public void onError(AsyncEvent event) {
470486
subscriptionRef.get().cancel();
471487
}
472488

473-
@Override public void onStartAsync(AsyncEvent event) {
489+
@Override
490+
public void onStartAsync(AsyncEvent event) {
474491
}
475492
}
476493

0 commit comments

Comments
 (0)