Author: markt
Date: Tue Jan 25 17:12:22 2011
New Revision: 1063362
URL: http://svn.apache.org/viewvc?rev=1063362&view=rev
Log:
Prevent multiple Comet END events
Modified:
tomcat/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java
tomcat/trunk/webapps/docs/changelog.xml
Modified: tomcat/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java?rev=1063362&r1=1063361&r2=1063362&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java
(original)
+++ tomcat/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java Tue Jan
25 17:12:22 2011
@@ -28,6 +28,7 @@ import javax.servlet.SessionTrackingMode
import org.apache.catalina.Context;
import org.apache.catalina.Wrapper;
import org.apache.catalina.comet.CometEvent;
+import org.apache.catalina.comet.CometEvent.EventType;
import org.apache.catalina.core.ApplicationSessionCookieConfig;
import org.apache.catalina.core.AsyncContextImpl;
import org.apache.catalina.util.ServerInfo;
@@ -217,8 +218,9 @@ public class CoyoteAdapter implements Ad
connector.getService().getContainer().getPipeline().getFirst().event(request,
response, request.getEvent());
}
if (response.isClosed() || !request.isComet()) {
- if (status==SocketStatus.OPEN) {
- //CometEvent.close was called during an event.
+ if (status==SocketStatus.OPEN &&
+ request.getEvent().getEventType() != EventType.END) {
+ //CometEvent.close was called during an event other than
END
request.getEvent().setEventType(CometEvent.EventType.END);
request.getEvent().setEventSubType(null);
error = true;
Modified: tomcat/trunk/webapps/docs/changelog.xml
URL:
http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1063362&r1=1063361&r2=1063362&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/trunk/webapps/docs/changelog.xml Tue Jan 25 17:12:22 2011
@@ -198,6 +198,10 @@
for explicit additional arguments for the executable. Those were
broken when implementing fix for bug <bug>49657</bug>. (kkolinko)
</fix>
+ <fix>
+ Prvent multiple Comet END events if the CometServlet calls
+ <code>event.close()</code> during an END event. (markt)
+ </fix>
</changelog>
</subsection>
</section>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]