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