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<S> 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<Long> socketWrapper) {
+       // NO-OP for APR/native
+       return;
+    }
+
+
+    @Override
     protected boolean breakKeepAliveLoop(SocketWrapper<Long> 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<NioChannel> 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("org.apache.tomcat.comet.timeout");
+                    if (comettimeout != null) 
attach.setTimeout(comettimeout.longValue());
+                }
+            }
+        }
+    }
+
+
+    @Override
     protected boolean breakKeepAliveLoop(
             SocketWrapper<NioChannel> socketWrapper) {
         // Do sendfile as needed: add socket to sendfile and end

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=1165338&r1=1165337&r2=1165338&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:31:46 2011
@@ -272,7 +272,7 @@ public class Http11Processor extends Abs
                                 (!isAsync() &&
                                 statusDropsConnection(response.getStatus()));
                     }
-
+                    setCometTimeouts(socketWrapper);
                 } catch (InterruptedIOException e) {
                     error = true;
                 } catch (Throwable t) {
@@ -345,6 +345,13 @@ public class Http11Processor extends Abs
 
 
     @Override
+    protected void setCometTimeouts(SocketWrapper<Socket> socketWrapper) {
+       // NO-OP for BIO
+       return;
+    }
+
+
+    @Override
     protected boolean breakKeepAliveLoop(SocketWrapper<Socket> socketWrapper) {
         // If we don't have a pipe-lined request allow this thread to be
         // used by another connection



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

Reply via email to