More connector alignment - request header parsing
authormarkt <markt@13f79535-47bb-0310-9956-ffa450edef68>
Tue, 6 Sep 2011 15:54:51 +0000 (15:54 +0000)
committermarkt <markt@13f79535-47bb-0310-9956-ffa450edef68>
Tue, 6 Sep 2011 15:54:51 +0000 (15:54 +0000)
git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@1165728 13f79535-47bb-0310-9956-ffa450edef68

java/org/apache/coyote/http11/Http11AprProcessor.java
java/org/apache/coyote/http11/Http11NioProcessor.java
java/org/apache/coyote/http11/Http11Processor.java

index e2637f2..74e0ff2 100644 (file)
@@ -217,7 +217,14 @@ public class Http11AprProcessor extends AbstractHttp11Processor<Long> {
                 } else {
                     request.setStartTime(System.currentTimeMillis());
                     keptAlive = true;
-                    inputBuffer.parseHeaders();
+                    // Currently only NIO will ever return false here
+                    if (!inputBuffer.parseHeaders()) {
+                        // We've read part of the request, don't recycle it
+                        // instead associate it with the socket
+                        openSocket = true;
+                        readComplete = false;
+                        break;
+                    }
                     if (!disableUploadTimeout) {
                         Socket.timeoutSet(socketRef,
                                 connectionUploadTimeout * 1000);
index 11b3050..ab27485 100644 (file)
@@ -244,9 +244,10 @@ public class Http11NioProcessor extends AbstractHttp11Processor<NioChannel> {
                 } else {
                     request.setStartTime(System.currentTimeMillis());
                     keptAlive = true;
-                    if ( !inputBuffer.parseHeaders() ) {
-                        //we've read part of the request, don't recycle it
-                        //instead associate it with the socket
+                    // Currently only NIO will ever return false here
+                    if (!inputBuffer.parseHeaders()) {
+                        // We've read part of the request, don't recycle it
+                        // instead associate it with the socket
                         openSocket = true;
                         readComplete = false;
                         break;
index 98c6051..3542e1d 100644 (file)
@@ -181,7 +181,14 @@ public class Http11Processor extends AbstractHttp11Processor<Socket> {
                     keptAlive = true;
                     // Reset timeout for reading headers
                     socket.getSocket().setSoTimeout(endpoint.getSoTimeout());
-                    inputBuffer.parseHeaders();
+                    // Currently only NIO will ever return false here
+                    if (!inputBuffer.parseHeaders()) {
+                        // We've read part of the request, don't recycle it
+                        // instead associate it with the socket
+                        openSocket = true;
+                        readComplete = false;
+                        break;
+                    }
                     if (!disableUploadTimeout) {
                         socket.getSocket().setSoTimeout(connectionUploadTimeout);
                     }