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: [email protected]
For additional commands, e-mail: [email protected]