Author: remm
Date: Tue Apr  3 07:13:33 2007
New Revision: 525160

URL: http://svn.apache.org/viewvc?view=rev&rev=525160
Log:
- It should be possible for the event object to be closed asynchronously. In 
that case, I think an END event
  should be sent to cleanup the pipeline.

Modified:
    tomcat/tc6.0.x/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java

Modified: 
tomcat/tc6.0.x/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java?view=diff&rev=525160&r1=525159&r2=525160
==============================================================================
--- tomcat/tc6.0.x/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java 
(original)
+++ tomcat/tc6.0.x/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java 
Tue Apr  3 07:13:33 2007
@@ -120,8 +120,15 @@
             boolean error = false;
             try {
                 if (status == SocketStatus.OPEN) {
-                    request.getEvent().setEventType(CometEvent.EventType.READ);
-                    request.getEvent().setEventSubType(null);
+                    if (response.isClosed()) {
+                        // The event has been closed asynchronously, so call 
end instead of
+                        // read to cleanup the pipeline
+                        
request.getEvent().setEventType(CometEvent.EventType.END);
+                        request.getEvent().setEventSubType(null);
+                    } else {
+                        
request.getEvent().setEventType(CometEvent.EventType.READ);
+                        request.getEvent().setEventSubType(null);
+                    }
                 } else if (status == SocketStatus.DISCONNECT) {
                     
request.getEvent().setEventType(CometEvent.EventType.ERROR);
                     
request.getEvent().setEventSubType(CometEvent.EventSubType.CLIENT_DISCONNECT);
@@ -134,8 +141,15 @@
                     request.getEvent().setEventType(CometEvent.EventType.END);
                     
request.getEvent().setEventSubType(CometEvent.EventSubType.SERVER_SHUTDOWN);
                 } else if (status == SocketStatus.TIMEOUT) {
-                    
request.getEvent().setEventType(CometEvent.EventType.ERROR);
-                    
request.getEvent().setEventSubType(CometEvent.EventSubType.TIMEOUT);
+                    if (response.isClosed()) {
+                        // The event has been closed asynchronously, so call 
end instead of
+                        // read to cleanup the pipeline
+                        
request.getEvent().setEventType(CometEvent.EventType.END);
+                        request.getEvent().setEventSubType(null);
+                    } else {
+                        
request.getEvent().setEventType(CometEvent.EventType.ERROR);
+                        
request.getEvent().setEventSubType(CometEvent.EventSubType.TIMEOUT);
+                    }
                 }
                 
                 // Calling the container



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to