Author: markt Date: Tue Sep 29 22:02:30 2015 New Revision: 1705938 URL: http://svn.apache.org/viewvc?rev=1705938&view=rev Log: Final refactoring to align the dispatch() method between Processors
Modified: tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java tomcat/trunk/java/org/apache/coyote/http2/StreamProcessor.java Modified: tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java?rev=1705938&r1=1705937&r2=1705938&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java Tue Sep 29 22:02:30 2015 @@ -248,6 +248,15 @@ public abstract class AbstractProcessor asyncStateMachine.asyncOperation(); } + /** + * Perform any necessary clean-up processing if the dispatch resulted in the + * completion of processing for the current request. + * + * @return The state to return for the socket once the clean-up for the + * current request has completed + */ + protected abstract SocketState dispatchEndRequest(); + @Override public abstract HttpUpgradeHandler getHttpUpgradeHandler(); Modified: tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java?rev=1705938&r1=1705937&r2=1705938&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java Tue Sep 29 22:02:30 2015 @@ -659,15 +659,12 @@ public class AjpProcessor extends Abstra } else if (isAsync()) { return SocketState.LONG; } else { - // Set keep alive timeout for next request if enabled - if (keepAliveTimeout > 0) { - socketWrapper.setReadTimeout(keepAliveTimeout); - } request.updateCounters(); - return SocketState.OPEN; + return dispatchEndRequest(); } } + @Override protected boolean flushBufferedWrite() throws IOException { if (hasDataToWrite()) { @@ -682,6 +679,7 @@ public class AjpProcessor extends Abstra return false; } + @Override protected void dispatchNonBlockingRead() { if (available()) { @@ -689,6 +687,17 @@ public class AjpProcessor extends Abstra } } + + @Override + protected SocketState dispatchEndRequest() { + // Set keep alive timeout for next request if enabled + if (keepAliveTimeout > 0) { + socketWrapper.setReadTimeout(keepAliveTimeout); + } + return SocketState.OPEN; + } + + /** * Process pipelined HTTP requests using the specified input and output * streams. 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=1705938&r1=1705937&r2=1705938&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java Tue Sep 29 22:02:30 2015 @@ -1737,17 +1737,7 @@ public class Http11Processor extends Abs return SocketState.LONG; } else { request.updateCounters(); - if (!keepAlive) { - return SocketState.CLOSED; - } else { - inputBuffer.nextRequest(); - outputBuffer.nextRequest(); - if (socketWrapper.isReadPending()) { - return SocketState.LONG; - } else { - return SocketState.OPEN; - } - } + return dispatchEndRequest(); } } @@ -1771,6 +1761,22 @@ public class Http11Processor extends Abs } + @Override + protected SocketState dispatchEndRequest() { + if (!keepAlive) { + return SocketState.CLOSED; + } else { + inputBuffer.nextRequest(); + outputBuffer.nextRequest(); + if (socketWrapper.isReadPending()) { + return SocketState.LONG; + } else { + return SocketState.OPEN; + } + } + } + + @Override public boolean isUpgrade() { return httpUpgradeHandler != null; Modified: tomcat/trunk/java/org/apache/coyote/http2/StreamProcessor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http2/StreamProcessor.java?rev=1705938&r1=1705937&r2=1705938&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/http2/StreamProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/http2/StreamProcessor.java Tue Sep 29 22:02:30 2015 @@ -443,7 +443,7 @@ public class StreamProcessor extends Abs return SocketState.LONG; } else { request.updateCounters(); - return SocketState.CLOSED; + return dispatchEndRequest(); } } @@ -468,6 +468,12 @@ public class StreamProcessor extends Abs } + @Override + protected SocketState dispatchEndRequest() { + return SocketState.CLOSED; + } + + public void addDispatch(DispatchType dispatchType) { synchronized (dispatches) { dispatches.add(dispatchType); --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org