You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2014/08/07 12:34:21 UTC

svn commit: r1616465 - in /tomcat/tc7.0.x/trunk: ./ java/org/apache/coyote/AsyncStateMachine.java webapps/docs/changelog.xml

Author: markt
Date: Thu Aug  7 10:34:20 2014
New Revision: 1616465

URL: http://svn.apache.org/r1616465
Log:
Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=56736
Avoid incorrect ISE if the timeout fires after a non-container thread has called dispatch() but before a container thread processed the dispatch()

Modified:
    tomcat/tc7.0.x/trunk/   (props changed)
    tomcat/tc7.0.x/trunk/java/org/apache/coyote/AsyncStateMachine.java
    tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml

Propchange: tomcat/tc7.0.x/trunk/
------------------------------------------------------------------------------
  Merged /tomcat/trunk:r1616452,1616458

Modified: tomcat/tc7.0.x/trunk/java/org/apache/coyote/AsyncStateMachine.java
URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/coyote/AsyncStateMachine.java?rev=1616465&r1=1616464&r2=1616465&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/java/org/apache/coyote/AsyncStateMachine.java (original)
+++ tomcat/tc7.0.x/trunk/java/org/apache/coyote/AsyncStateMachine.java Thu Aug  7 10:34:20 2014
@@ -240,9 +240,10 @@ public class AsyncStateMachine<S> {
             state = AsyncState.TIMING_OUT;
             return true;
         } else if (state == AsyncState.COMPLETING ||
+                state == AsyncState.DISPATCHING ||
                 state == AsyncState.DISPATCHED) {
-            // NOOP - App called complete between the the timeout firing and
-            // execution reaching this point
+            // NOOP - App called complete() or dispatch() between the the
+            // timeout firing and execution reaching this point
             return false;
         } else {
             throw new IllegalStateException(

Modified: tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml
URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml?rev=1616465&r1=1616464&r2=1616465&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml Thu Aug  7 10:34:20 2014
@@ -71,6 +71,12 @@
         Cédric Couralet. (markt)
       </fix>
       <fix>
+        <bug>56736</bug>: Avoid an incorrect <code>IllegalStateException</code>
+        if the async timeout fires after a non-container thread has called
+        <code>AsyncContext.dispatch()</code> but before a container thread
+        starts processing the dispatch. (markt)
+      </fix>
+      <fix>
         <bug>56771</bug>: When lookup for a resource in all the alternate or
         backup <code>javax.naming.directory.DirContext</code>,
         <code>javax.naming.NameNotFoundException</code> will be thrown at the



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org