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

Reply via email to