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