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