Author: markt Date: Tue Sep 29 21:26:56 2015 New Revision: 1705928 URL: http://svn.apache.org/viewvc?rev=1705928&view=rev Log: Refactoring to start to align dispatch() implementations across the 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=1705928&r1=1705927&r2=1705928&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java Tue Sep 29 21:26:56 2015 @@ -228,6 +228,13 @@ public abstract class AbstractProcessor @Override public abstract SocketState dispatch(SocketStatus status); + /** + * Perform any necessary processing for a non-blocking read before + * dispatching to the adapter. + */ + protected void dispatchNonBlockingRead() { + asyncStateMachine.asyncOperation(); + } @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=1705928&r1=1705927&r2=1705928&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java Tue Sep 29 21:26:56 2015 @@ -640,9 +640,7 @@ public class AjpProcessor extends Abstra request.setAttribute(RequestDispatcher.ERROR_EXCEPTION, ioe); } } else if (status == SocketStatus.OPEN_READ && request.getReadListener() != null) { - if (available()) { - asyncStateMachine.asyncOperation(); - } + dispatchNonBlockingRead(); } RequestInfo rp = request.getRequestProcessor(); @@ -676,6 +674,12 @@ public class AjpProcessor extends Abstra } } + @Override + protected void dispatchNonBlockingRead() { + if (available()) { + super.dispatchNonBlockingRead(); + } + } /** * Process pipelined HTTP requests using the specified input and output 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=1705928&r1=1705927&r2=1705928&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java Tue Sep 29 21:26:56 2015 @@ -1721,7 +1721,7 @@ public class Http11Processor extends Abs request.setAttribute(RequestDispatcher.ERROR_EXCEPTION, ioe); } } else if (status == SocketStatus.OPEN_READ && request.getReadListener() != null) { - asyncStateMachine.asyncOperation(); + dispatchNonBlockingRead(); } RequestInfo rp = request.getRequestProcessor(); 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=1705928&r1=1705927&r2=1705928&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/http2/StreamProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/http2/StreamProcessor.java Tue Sep 29 21:26:56 2015 @@ -409,7 +409,6 @@ public class StreamProcessor extends Abs if (status == SocketStatus.OPEN_WRITE && response.getWriteListener() != null) { asyncStateMachine.asyncOperation(); try { - if (stream.getOutputBuffer().flush(false)) { // The buffer wasn't fully flushed so re-register the // stream for write. Note this does not go via the @@ -432,7 +431,7 @@ public class StreamProcessor extends Abs request.setAttribute(RequestDispatcher.ERROR_EXCEPTION, ioe); } } else if (status == SocketStatus.OPEN_READ && request.getReadListener() != null) { - asyncStateMachine.asyncOperation(); + dispatchNonBlockingRead(); } RequestInfo rp = request.getRequestProcessor(); --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org