Author: markt
Date: Fri May 24 14:59:45 2013
New Revision: 1486085
URL: http://svn.apache.org/r1486085
Log:
Non-blocking ends when async ends so ensure listeners are cleared
Modified:
tomcat/trunk/java/org/apache/coyote/AsyncStateMachine.java
Modified: tomcat/trunk/java/org/apache/coyote/AsyncStateMachine.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/AsyncStateMachine.java?rev=1486085&r1=1486084&r2=1486085&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/AsyncStateMachine.java (original)
+++ tomcat/trunk/java/org/apache/coyote/AsyncStateMachine.java Fri May 24
14:59:45 2013
@@ -236,6 +236,7 @@ public class AsyncStateMachine<S> {
state == AsyncState.ERROR) {
state = AsyncState.MUST_COMPLETE;
} else if (state == AsyncState.READ_WRITE_OP) {
+ clearNonBlockingListeners();
state = AsyncState.MUST_COMPLETE;
} else {
throw new IllegalStateException(
@@ -297,6 +298,7 @@ public class AsyncStateMachine<S> {
if (state == AsyncState.DISPATCHED ||
state == AsyncState.TIMING_OUT ||
state == AsyncState.READ_WRITE_OP) {
+ clearNonBlockingListeners();
state = AsyncState.ERROR;
} else {
throw new IllegalStateException(
@@ -351,6 +353,12 @@ public class AsyncStateMachine<S> {
}
+ private void clearNonBlockingListeners() {
+ processor.getRequest().listener = null;
+ processor.getRequest().getResponse().listener = null;
+ }
+
+
private static class PrivilegedSetTccl implements PrivilegedAction<Void> {
private ClassLoader cl;
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]