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: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org