Author: markt Date: Thu May 5 09:25:19 2016 New Revision: 1742387 URL: http://svn.apache.org/viewvc?rev=1742387&view=rev Log: Always clear the nonBlocking listeners on complete. If complete is called from a non-container thread a number of states are possible. It is more robust to always clear the listeners.
Modified: tomcat/trunk/java/org/apache/coyote/AsyncStateMachine.java tomcat/trunk/webapps/docs/changelog.xml Modified: tomcat/trunk/java/org/apache/coyote/AsyncStateMachine.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/AsyncStateMachine.java?rev=1742387&r1=1742386&r2=1742387&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/AsyncStateMachine.java [UTF-8] (original) +++ tomcat/trunk/java/org/apache/coyote/AsyncStateMachine.java [UTF-8] Thu May 5 09:25:19 2016 @@ -272,6 +272,7 @@ public class AsyncStateMachine { public synchronized boolean asyncComplete() { pauseNonContainerThread(); + clearNonBlockingListeners(); boolean doComplete = false; if (state == AsyncState.STARTING) { state = AsyncState.MUST_COMPLETE; @@ -282,7 +283,6 @@ public class AsyncStateMachine { state == AsyncState.ERROR) { state = AsyncState.MUST_COMPLETE; } else if (state == AsyncState.READ_WRITE_OP) { - clearNonBlockingListeners(); state = AsyncState.MUST_COMPLETE; } else { throw new IllegalStateException( Modified: tomcat/trunk/webapps/docs/changelog.xml URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1742387&r1=1742386&r2=1742387&view=diff ============================================================================== --- tomcat/trunk/webapps/docs/changelog.xml (original) +++ tomcat/trunk/webapps/docs/changelog.xml Thu May 5 09:25:19 2016 @@ -238,6 +238,10 @@ <update> <bug>59421</bug>: Add direct HTTP/2 connection support. (remm) </update> + <fix> + Correctly handle a call to <code>AsyncContext.complete()</code> from a + non-container thread when non-blocking I/O is being used. (markt) + </fix> </changelog> </subsection> <subsection name="Jasper"> --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org