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