Author: markt Date: Fri Aug 12 07:47:20 2016 New Revision: 1756103 URL: http://svn.apache.org/viewvc?rev=1756103&view=rev Log: Align ActionCode.DISPATCH_EXECUTE
Modified: 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/ajp/AjpProcessor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java?rev=1756103&r1=1756102&r2=1756103&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java Fri Aug 12 07:47:20 2016 @@ -565,7 +565,10 @@ public class AjpProcessor extends Abstra break; } case DISPATCH_EXECUTE: { - socketWrapper.executeNonBlockingDispatches(getIteratorAndClearDispatches()); + SocketWrapperBase<?> wrapper = socketWrapper; + if (wrapper != null) { + executeDispatches(wrapper); + } break; } @@ -1421,13 +1424,13 @@ public class AjpProcessor extends Abstra replay = true; endOfStream = false; } - - + + private void setSwallowResponse() { swallowResponse = true; } - - + + private void disableSwallowRequest() { /* NO-OP * With AJP, Tomcat controls when the client sends request body data. At @@ -1435,15 +1438,15 @@ public class AjpProcessor extends Abstra * in finishResponse(). */ } - - + + private boolean getPopulateRequestAttributesFromSocket() { // NO-OPs the attribute requests since they are pre-populated when // parsing the first AJP message. return false; } - + private void populateRequestAttributeRemoteHost() { // Get remote host name using a DNS resolution if (request.remoteHost().isNull()) { @@ -1455,8 +1458,8 @@ public class AjpProcessor extends Abstra } } } - - + + private void populateSslRequestAttributes() { if (!certificates.isNull()) { ByteChunk certData = certificates.getByteChunk(); @@ -1498,29 +1501,34 @@ public class AjpProcessor extends Abstra request.setAttribute(SSLSupport.CERTIFICATE_KEY, jsseCerts); } } - - + + private void sslReHandShake() { // NO-OP. Can't force a new SSL handshake with the client when using // AJP as the reverse proxy controls that connection. } - + private boolean isRequestBodyFullyRead() { return endOfStream; } - - + + private void registerReadInterest() { socketWrapper.registerReadInterest(); } - - + + private boolean isReady() { return responseMsgPos == -1 && socketWrapper.isReadyForWrite(); } - - + + + private void executeDispatches(SocketWrapperBase<?> wrapper) { + wrapper.executeNonBlockingDispatches(getIteratorAndClearDispatches()); + } + + /** * Read at least the specified amount of bytes, and place them * in the input buffer. Note that if any data is available to read then this 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=1756103&r1=1756102&r2=1756103&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java Fri Aug 12 07:47:20 2016 @@ -860,7 +860,7 @@ public class Http11Processor extends Abs case DISPATCH_EXECUTE: { SocketWrapperBase<?> wrapper = socketWrapper; if (wrapper != null) { - wrapper.executeNonBlockingDispatches(getIteratorAndClearDispatches()); + executeDispatches(wrapper); } break; } @@ -1746,39 +1746,39 @@ public class Http11Processor extends Abs private int available(boolean doRead) { return inputBuffer.available(doRead); } - - + + private void setRequestBody(ByteChunk body) { InputFilter savedBody = new SavedRequestInputFilter(body); savedBody.setRequest(request); - + Http11InputBuffer internalBuffer = (Http11InputBuffer) request.getInputBuffer(); internalBuffer.addActiveFilter(savedBody); } - - + + private void setSwallowResponse() { outputBuffer.responseFinished = true; } - - + + private void disableSwallowRequest() { inputBuffer.setSwallowInput(false); } - - + + private boolean getPopulateRequestAttributesFromSocket() { return true; } - - + + private void populateRequestAttributeRemoteHost() { if (getPopulateRequestAttributesFromSocket() && socketWrapper != null) { request.remoteHost().setString(socketWrapper.getRemoteHost()); } } - - + + private void populateSslRequestAttributes() { try { if (sslSupport != null) { @@ -1830,23 +1830,28 @@ public class Http11Processor extends Abs } } } - - + + private boolean isRequestBodyFullyRead() { return inputBuffer.isFinished(); } - - + + private void registerReadInterest() { socketWrapper.registerReadInterest(); } - - + + private boolean isReady() { return outputBuffer.isReady(); } - - + + + private void executeDispatches(SocketWrapperBase<?> wrapper) { + wrapper.executeNonBlockingDispatches(getIteratorAndClearDispatches()); + } + + /** * Checks to see if the keep-alive loop should be broken, performing any * processing (e.g. sendfile handling) that may have an impact on whether 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=1756103&r1=1756102&r2=1756103&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/http2/StreamProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/http2/StreamProcessor.java Fri Aug 12 07:47:20 2016 @@ -312,7 +312,10 @@ public class StreamProcessor extends Abs break; } case DISPATCH_EXECUTE: { - socketWrapper.getEndpoint().getExecutor().execute(this); + SocketWrapperBase<?> wrapper = socketWrapper; + if (wrapper != null) { + executeDispatches(wrapper); + } break; } @@ -371,43 +374,43 @@ public class StreamProcessor extends Abs /** - * @param doRead Unused for HTTP/2 + * @param doRead Unused for HTTP/2 */ private int available(boolean doRead) { return stream.getInputBuffer().available(); } - - + + private void setRequestBody(ByteChunk body) { stream.getInputBuffer().insertReplayedBody(body); stream.receivedEndOfStream(); } - - + + private void setSwallowResponse() { // NO-OP } - - + + private void disableSwallowRequest() { // NO-OP // HTTP/2 has to swallow any input received to ensure that the flow // control windows are correctly tracked. } - - + + private boolean getPopulateRequestAttributesFromSocket() { return true; } - + private void populateRequestAttributeRemoteHost() { if (getPopulateRequestAttributesFromSocket() && socketWrapper != null) { request.remoteHost().setString(socketWrapper.getRemoteHost()); } } - - + + private void populateSslRequestAttributes() { try { if (sslSupport != null) { @@ -443,22 +446,27 @@ public class StreamProcessor extends Abs // No re-negotiation support in HTTP/2. } - + private boolean isRequestBodyFullyRead() { return stream.getInputBuffer().isRequestBodyFullyRead(); } - - + + private void registerReadInterest() { stream.getInputBuffer().registerReadInterest(); } - - + + private boolean isReady() { return stream.getOutputBuffer().isReady(); } - - + + + private void executeDispatches(SocketWrapperBase<?> wrapper) { + wrapper.getEndpoint().getExecutor().execute(this); + } + + @Override public void recycle() { // StreamProcessor instances are not re-used. --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org