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

Reply via email to