Avoid NPE during non-container thread error handling
git-svn-id: https://svn.apache.org/repos/asf/tomcat/tc8.0.x/trunk@1799934 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/java/org/apache/catalina/core/AsyncContextImpl.java b/java/org/apache/catalina/core/AsyncContextImpl.java
index 52fc7eb..82a3767 100644
--- a/java/org/apache/catalina/core/AsyncContextImpl.java
+++ b/java/org/apache/catalina/core/AsyncContextImpl.java
@@ -431,6 +431,10 @@
if (result.get()) {
// No listener called dispatch() or complete(). This is an error.
// SRV.2.3.3.3 (search for "error dispatch")
+ // Take a local copy to avoid threading issues if another thread
+ // clears this (can happen during error handling with non-container
+ // threads)
+ ServletResponse servletResponse = this.servletResponse;
if (servletResponse instanceof HttpServletResponse) {
((HttpServletResponse) servletResponse).setStatus(
HttpServletResponse.SC_INTERNAL_SERVER_ERROR);