Author: markt Date: Thu Oct 25 22:12:33 2012 New Revision: 1402345 URL: http://svn.apache.org/viewvc?rev=1402345&view=rev Log: Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=54022 Ensure Comet END event is triggered on client disconnect with APR/native on Windows Vista/2k8 or later. Patch provided by Douglas Beachy.
Modified: tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java Modified: tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java?rev=1402345&r1=1402344&r2=1402345&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java (original) +++ tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java Thu Oct 25 22:12:33 2012 @@ -604,9 +604,13 @@ public abstract class AbstractProtocol i SocketState state = SocketState.CLOSED; do { - if (status == SocketStatus.DISCONNECT) { - //do nothing here, just wait for it to get recycled - } else if (processor.isAsync() || state == SocketState.ASYNC_END) { + if (status == SocketStatus.DISCONNECT && + !processor.isComet()) { + // Do nothing here, just wait for it to get recycled + // Don't do this for Comet we need to generate an end + // event (see BZ 54022) + } else if (processor.isAsync() || + state == SocketState.ASYNC_END) { state = processor.asyncDispatch(status); } else if (processor.isComet()) { state = processor.event(status); --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org