You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2011/09/05 17:21:22 UTC

svn commit: r1165331 - in /tomcat/trunk/java/org/apache/coyote/http11: AbstractHttp11Processor.java Http11AprProcessor.java Http11NioProcessor.java Http11Processor.java

Author: markt
Date: Mon Sep  5 15:21:22 2011
New Revision: 1165331

URL: http://svn.apache.org/viewvc?rev=1165331&view=rev
Log:
Complete alignment of process() for finishing requests

Modified:
    tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java
    tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java
    tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java
    tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java

Modified: tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java?rev=1165331&r1=1165330&r2=1165331&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java Mon Sep  5 15:21:22 2011
@@ -94,6 +94,11 @@ public abstract class AbstractHttp11Proc
 
 
     /**
+     * Flag that indicates if the request headers have been completely read.
+     */
+    protected boolean readComplete = true;
+
+    /**
      * HTTP/1.1 flag.
      */
     protected boolean http11 = true;

Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java?rev=1165331&r1=1165330&r2=1165331&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java Mon Sep  5 15:21:22 2011
@@ -183,6 +183,7 @@ public class Http11AprProcessor extends 
         comet = false;
         openSocket = false;
         sendfileInProgress = false;
+        readComplete = true;
 
         int soTimeout = endpoint.getSoTimeout();
 
@@ -320,7 +321,7 @@ public class Http11AprProcessor extends 
             rp.setStage(org.apache.coyote.Constants.STAGE_KEEPALIVE);
 
             if (breakKeepAliveLoop(socketWrapper)) {
-            	break;
+                break;
             }
         }
 
@@ -334,10 +335,17 @@ public class Http11AprProcessor extends 
             if (sendfileInProgress) {
                 return SocketState.SENDFILE;
             } else {
-                return (openSocket) ? SocketState.OPEN : SocketState.CLOSED;
+                if (openSocket) {
+                    if (readComplete) {
+                        return SocketState.OPEN;
+                    } else {
+                        return SocketState.LONG;
+                    }
+                } else {
+                    return SocketState.CLOSED;
+                }
             }
         }
-        
     }
 
 

Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java?rev=1165331&r1=1165330&r2=1165331&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java Mon Sep  5 15:21:22 2011
@@ -212,6 +212,7 @@ public class Http11NioProcessor extends 
         comet = false;
         openSocket = false;
         sendfileInProgress = false;
+        readComplete = true;
         
         int soTimeout = endpoint.getSoTimeout();
 
@@ -220,7 +221,6 @@ public class Http11NioProcessor extends 
         }
 
         boolean keptAlive = false;
-        boolean readComplete = true;
         
         while (!error && keepAlive && !comet && !isAsync() && !endpoint.isPaused()) {
             //always default to our soTimeout
@@ -382,24 +382,37 @@ public class Http11NioProcessor extends 
             rp.setStage(org.apache.coyote.Constants.STAGE_KEEPALIVE);
 
             if (breakKeepAliveLoop(socketWrapper)) {
-            	break;
+                break;
             }
         }
 
         rp.setStage(org.apache.coyote.Constants.STAGE_ENDED);
+
         if (error || endpoint.isPaused()) {
             return SocketState.CLOSED;
         } else if (comet || isAsync()) {
             return SocketState.LONG;
         } else {
-            return (openSocket) ? (readComplete?SocketState.OPEN:SocketState.LONG) : SocketState.CLOSED;
+            if (sendfileInProgress) {
+                return SocketState.SENDFILE;
+            } else {
+                if (openSocket) {
+                    if (readComplete) {
+                        return SocketState.OPEN;
+                    } else {
+                        return SocketState.LONG;
+                    }
+                } else {
+                    return SocketState.CLOSED;
+                }
+            }
         }
     }
 
 
     @Override
     protected boolean breakKeepAliveLoop(
-    		SocketWrapper<NioChannel> socketWrapper) {
+            SocketWrapper<NioChannel> socketWrapper) {
         // Do sendfile as needed: add socket to sendfile and end
         if (sendfileData != null && !error) {
             ((KeyAttachment) socketWrapper).setSendfileData(sendfileData);
@@ -411,7 +424,7 @@ public class Http11NioProcessor extends 
                     (KeyAttachment) socketWrapper, true, true);
             return true;
         }
-    	return false;
+        return false;
     }
 
 

Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java?rev=1165331&r1=1165330&r2=1165331&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java Mon Sep  5 15:21:22 2011
@@ -147,6 +147,7 @@ public class Http11Processor extends Abs
         comet = false;
         openSocket = false;
         sendfileInProgress = false;
+        readComplete = true;
 
         int soTimeout = endpoint.getSoTimeout();
 
@@ -315,22 +316,31 @@ public class Http11Processor extends Abs
             rp.setStage(org.apache.coyote.Constants.STAGE_KEEPALIVE);
 
             if (breakKeepAliveLoop(socketWrapper)) {
-            	break;
+                break;
             }
         }
 
         rp.setStage(org.apache.coyote.Constants.STAGE_ENDED);
+
         if (error || endpoint.isPaused()) {
             return SocketState.CLOSED;
-        } else if (isAsync()) {
+        } else if (comet || isAsync()) {
             return SocketState.LONG;
         } else {
-            if (!keepAlive) {
-                return SocketState.CLOSED;
+            if (sendfileInProgress) {
+                return SocketState.SENDFILE;
             } else {
-                return SocketState.OPEN;
+                if (openSocket) {
+                    if (readComplete) {
+                        return SocketState.OPEN;
+                    } else {
+                        return SocketState.LONG;
+                    }
+                } else {
+                    return SocketState.CLOSED;
+                }
             }
-        } 
+        }
     }
 
 



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org