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/12/14 11:07:13 UTC
svn commit: r1774193 - in /tomcat/trunk/java/org/apache/coyote:
AbstractProcessor.java AsyncStateMachine.java LocalStrings.properties
ajp/AjpProcessor.java http11/Http11Processor.java http2/StreamProcessor.java
Author: markt
Date: Wed Dec 14 11:07:12 2016
New Revision: 1774193
URL: http://svn.apache.org/viewvc?rev=1774193&view=rev
Log:
Remove the need to pass an Executor into the AbstractProcessor
Modified:
tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java
tomcat/trunk/java/org/apache/coyote/AsyncStateMachine.java
tomcat/trunk/java/org/apache/coyote/LocalStrings.properties
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=1774193&r1=1774192&r2=1774193&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java (original)
+++ tomcat/trunk/java/org/apache/coyote/AbstractProcessor.java Wed Dec 14 11:07:12 2016
@@ -20,7 +20,6 @@ import java.io.IOException;
import java.io.InterruptedIOException;
import java.nio.ByteBuffer;
import java.util.Iterator;
-import java.util.concurrent.Executor;
import java.util.concurrent.atomic.AtomicBoolean;
import javax.servlet.RequestDispatcher;
@@ -45,7 +44,6 @@ public abstract class AbstractProcessor
protected Adapter adapter;
protected final AsyncStateMachine asyncStateMachine;
private volatile long asyncTimeout = -1;
- protected final Executor executor;
protected final Request request;
protected final Response response;
protected volatile SocketWrapperBase<?> socketWrapper = null;
@@ -58,14 +56,12 @@ public abstract class AbstractProcessor
private ErrorState errorState = ErrorState.NONE;
- public AbstractProcessor(AbstractProtocol<?> protocol) {
- this(protocol.getExecutor(), new Request(), new Response());
+ public AbstractProcessor() {
+ this(new Request(), new Response());
}
- protected AbstractProcessor(Executor executor, Request coyoteRequest,
- Response coyoteResponse) {
- this.executor = executor;
+ protected AbstractProcessor(Request coyoteRequest, Response coyoteResponse) {
asyncStateMachine = new AsyncStateMachine(this);
request = coyoteRequest;
response = coyoteResponse;
@@ -156,10 +152,15 @@ public abstract class AbstractProcessor
/**
- * @return the Executor used to dispatch processing to a container thread
+ * Provides a mechanism to trigger processing on a container thread.
*/
- protected Executor getExecutor() {
- return executor;
+ protected void execute(Runnable runnable) {
+ SocketWrapperBase<?> socketWrapper = this.socketWrapper;
+ if (socketWrapper == null) {
+ getLog().warn(sm.getString("abstractProcessor.noExecute"), new Exception());
+ } else {
+ socketWrapper.getExecutor().execute(runnable);
+ }
}
Modified: tomcat/trunk/java/org/apache/coyote/AsyncStateMachine.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/AsyncStateMachine.java?rev=1774193&r1=1774192&r2=1774193&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/AsyncStateMachine.java [UTF-8] (original)
+++ tomcat/trunk/java/org/apache/coyote/AsyncStateMachine.java [UTF-8] Wed Dec 14 11:07:12 2016
@@ -422,7 +422,7 @@ public class AsyncStateMachine {
this.getClass().getClassLoader());
}
- processor.getExecutor().execute(runnable);
+ processor.execute(runnable);
} finally {
if (Constants.IS_SECURITY_ENABLED) {
PrivilegedAction<Void> pa = new PrivilegedSetTccl(
Modified: tomcat/trunk/java/org/apache/coyote/LocalStrings.properties
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/LocalStrings.properties?rev=1774193&r1=1774192&r2=1774193&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/LocalStrings.properties (original)
+++ tomcat/trunk/java/org/apache/coyote/LocalStrings.properties Wed Dec 14 11:07:12 2016
@@ -20,6 +20,7 @@ abstractConnectionHandler.socketexceptio
abstractConnectionHandler.negotiatedProcessor.fail=Failed to create Processor for negotiated protocol [{0}]
abstractProcessor.httpupgrade.notsupported=HTTP upgrade is not supported by this protocol
+abstractProcessor.noExecute=Unable to transfer processing to a container thread because this Processor is not currently associated with a SocketWrapper
abstractProcessor.nonContainerThreadError=An error occurred in processing while on a non-container thread. The connection will be closed immediately
abstractProcessor.pushrequest.notsupported=Server push requests are not supported by this protocol
abstractProcessor.socket.ssl=Exception getting SSL attributes
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=1774193&r1=1774192&r2=1774193&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java (original)
+++ tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java Wed Dec 14 11:07:12 2016
@@ -245,8 +245,7 @@ public class AjpProcessor extends Abstra
// ------------------------------------------------------------ Constructor
public AjpProcessor(AbstractAjpProtocol<?> protocol) {
-
- super(protocol);
+ super();
this.protocol = protocol;
int packetSize = protocol.getPacketSize();
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=1774193&r1=1774192&r2=1774193&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java Wed Dec 14 11:07:12 2016
@@ -148,8 +148,7 @@ public class Http11Processor extends Abs
public Http11Processor(AbstractHttp11Protocol<?> protocol) {
-
- super(protocol);
+ super();
this.protocol = protocol;
userDataHelper = new UserDataHelper(log);
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=1774193&r1=1774192&r2=1774193&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http2/StreamProcessor.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http2/StreamProcessor.java Wed Dec 14 11:07:12 2016
@@ -45,7 +45,7 @@ class StreamProcessor extends AbstractPr
StreamProcessor(Http2UpgradeHandler handler, Stream stream, Adapter adapter,
SocketWrapperBase<?> socketWrapper) {
- super(socketWrapper.getExecutor(), stream.getCoyoteRequest(), stream.getCoyoteResponse());
+ super(stream.getCoyoteRequest(), stream.getCoyoteResponse());
this.handler = handler;
this.stream = stream;
setAdapter(adapter);
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org