Author: fhanik
Date: Tue May 29 03:44:51 2007
New Revision: 542482

URL: http://svn.apache.org/viewvc?view=rev&rev=542482
Log:
Add the additional SocketStatus event types, its up to the connector 
implementation to send the correct one.
Currently the functionality is backwards compatible as OPEN changed to OPEN_READ



Modified:
    tomcat/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java
    tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java
    tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java
    tomcat/trunk/java/org/apache/tomcat/util/net/SocketStatus.java

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?view=diff&rev=542482&r1=542481&r2=542482
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java 
(original)
+++ tomcat/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java Tue May 
29 03:44:51 2007
@@ -123,7 +123,27 @@
             try {
                 if ( event!=null && (event instanceof CometEventImpl)) 
                     ((CometEventImpl)event).setWorkerThread();
-                if (status == SocketStatus.OPEN) {
+                if (status == SocketStatus.OPEN_CALLBACK) {
+                    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.CALLBACK);
+                        request.getEvent().setEventSubType(null);
+                    }
+                } else if (status == SocketStatus.OPEN_WRITE) {
+                    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.WRITE);
+                        request.getEvent().setEventSubType(null);
+                    }
+                } else if (status == SocketStatus.OPEN_READ) {
                     if (response.isClosed()) {
                         // The event has been closed asynchronously, so call 
end instead of
                         // read to cleanup the pipeline
@@ -274,7 +294,7 @@
                     if (!response.isClosed() && !response.isError()) {
                         if (request.getAvailable()) {
                             // Invoke a read event right away if there are 
available bytes
-                            if (event(req, res, SocketStatus.OPEN)) {
+                            if (event(req, res, SocketStatus.OPEN_READ)) {
                                 comet = true;
                                 res.action(ActionCode.ACTION_COMET_BEGIN, 
null);
                             }

Modified: tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java?view=diff&rev=542482&r1=542481&r2=542482
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java Tue May 29 
03:44:51 2007
@@ -1301,7 +1301,7 @@
                             // Check for failed sockets and hand this socket 
off to a worker
                             if (((desc[n*2] & Poll.APR_POLLHUP) == 
Poll.APR_POLLHUP)
                                     || ((desc[n*2] & Poll.APR_POLLERR) == 
Poll.APR_POLLERR)
-                                    || (comet && (!processSocket(desc[n*2+1], 
SocketStatus.OPEN))) 
+                                    || (comet && (!processSocket(desc[n*2+1], 
SocketStatus.OPEN_READ))) 
                                     || (!comet && 
(!processSocket(desc[n*2+1])))) {
                                 // Close socket and clear pool
                                 if (comet) {

Modified: tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java?view=diff&rev=542482&r1=542481&r2=542482
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java Tue May 29 
03:44:51 2007
@@ -1501,7 +1501,7 @@
                             //check if thread is available
                             if ( isWorkerAvailable() ) {
                                 unreg(sk, attachment, sk.readyOps());
-                                if (!processSocket(channel, SocketStatus.OPEN))
+                                if (!processSocket(channel, 
SocketStatus.OPEN_READ))
                                     processSocket(channel, 
SocketStatus.DISCONNECT);
                             } else {
                                 result = false;

Modified: tomcat/trunk/java/org/apache/tomcat/util/net/SocketStatus.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/SocketStatus.java?view=diff&rev=542482&r1=542481&r2=542482
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/net/SocketStatus.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/net/SocketStatus.java Tue May 29 
03:44:51 2007
@@ -23,5 +23,5 @@
  * @author remm
  */
 public enum SocketStatus {
-    OPEN, STOP, TIMEOUT, DISCONNECT, ERROR
+    OPEN_READ, OPEN_WRITE, OPEN_CALLBACK, STOP, TIMEOUT, DISCONNECT, ERROR
 }



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

Reply via email to