Author: markt
Date: Mon Sep 5 15:31:46 2011
New Revision: 1165338
URL: http://svn.apache.org/viewvc?rev=1165338&view=rev
Log:
Align request processing between the connectors
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=1165338&r1=1165337&r2=1165338&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:31:46 2011
@@ -1291,6 +1291,12 @@ public abstract class AbstractHttp11Proc
protected abstract void resetTimeouts();
+/**
+ * Provides a mechanism for those connectors (currently only NIO) that need
+ * that need to set comment timeouts.
+ */
+protected abstract void setCometTimeouts(SocketWrapper socketWrapper);
+
public void endRequest() {
// Finish the handling of the request
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=1165338&r1=1165337&r2=1165338&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:31:46 2011
@@ -278,6 +278,7 @@ public class Http11AprProcessor extends
(!isAsync() &&
statusDropsConnection(response.getStatus()));
}
+setCometTimeouts(socketWrapper);
} catch (InterruptedIOException e) {
error = true;
} catch (Throwable t) {
@@ -350,6 +351,13 @@ public class Http11AprProcessor extends
@Override
+protected void setCometTimeouts(SocketWrapper socketWrapper) {
+ // NO-OP for APR/native
+ return;
+}
+
+
+@Override
protected boolean breakKeepAliveLoop(SocketWrapper socketWrapper) {
// Do sendfile as needed: add socket to sendfile and end
if (sendfileData != null && !error) {
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=1165338&r1=1165337&r2=1165338&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:31:46 2011
@@ -326,19 +326,7 @@ public class Http11NioProcessor extends
(!isAsync() &&
statusDropsConnection(response.getStatus()));
}
-// Comet support
-SelectionKey key =
socketWrapper.getSocket().getIOChannel().keyFor(
-
socketWrapper.getSocket().getPoller().getSelector());
-if (key != null) {
-NioEndpoint.KeyAttachment attach =
(NioEndpoint.KeyAttachment) key.attachment();
-if (attach != null) {
-attach.setComet(comet);
-if (comet) {
-Integer comettimeout = (Integer)
request.getAttribute("org.apache.tomcat.comet.timeout");
-if (comettimeout != null)
attach.setTimeout(comettimeout.longValue());
-}
-}
-}
+setCometTimeouts(socketWrapper);
} catch (InterruptedIOException e) {
error = true;
} catch (Throwable t) {
@@ -411,6 +399,24 @@ public class Http11NioProcessor extends
@Override
+protected void setCometTimeouts(SocketWrapper socketWrapper) {
+// Comet support
+SelectionKey key = socketWrapper.getSocket().getIOChannel().keyFor(
+socketWrapper.getSocket().getPoller().getSelector());
+if (key != null) {
+NioEndpoint.KeyAttachment attach = (NioEndpoint.KeyAttachment)
key.attachment();
+if (attach != null) {
+attach.setComet(comet);
+if (comet) {
+Integer comettimeout = (Integer)
request.getAttribute(