You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2016/08/12 07:47:20 UTC
svn commit: r1756103 - in /tomcat/trunk/java/org/apache/coyote:
ajp/AjpProcessor.java http11/Http11Processor.java http2/StreamProcessor.java
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-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org