This is an automated email from the ASF dual-hosted git repository.

markt pushed a commit to branch 7.0.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git


The following commit(s) were added to refs/heads/7.0.x by this push:
     new 0e89ecc  Another attempt to fix an intermittent unit test failure
0e89ecc is described below

commit 0e89ecc89c8f7d53d6715b8801a64bcce0bdb91e
Author: Mark Thomas <[email protected]>
AuthorDate: Mon Mar 2 17:28:03 2020 +0000

    Another attempt to fix an intermittent unit test failure
---
 test/org/apache/catalina/core/TestAsyncContextImpl.java | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)

diff --git a/test/org/apache/catalina/core/TestAsyncContextImpl.java 
b/test/org/apache/catalina/core/TestAsyncContextImpl.java
index 273a562..565b93c 100644
--- a/test/org/apache/catalina/core/TestAsyncContextImpl.java
+++ b/test/org/apache/catalina/core/TestAsyncContextImpl.java
@@ -347,7 +347,21 @@ public class TestAsyncContextImpl extends TomcatBaseTest {
                                 resp.getWriter().print("OK");
                                 req.getAsyncContext().complete();
                                 result.append('5');
-                                result.append(req.isAsyncStarted());
+                                try {
+                                    // Once complete() has been called on a
+                                    // non-container thread it is not safe to
+                                    // continue to use the request object as it
+                                    // may be recycled at any point. Normally
+                                    // there is enough time for this call to
+                                    // complete but not always. If this call
+                                    // fails in Tomcat an NPE will result so
+                                    // handle this here with a hack. What we 
are
+                                    // really checking here is that it does not
+                                    // return true.
+                                    result.append(req.isAsyncStarted());
+                                } catch (NullPointerException npe) {
+                                    result.append("false");
+                                }
                                 done = true;
                             } catch (InterruptedException e) {
                                 result.append(e);


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to