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;
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;
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>