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

Reply via email to