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 2017/01/03 16:00:32 UTC

svn commit: r1777151 - in /tomcat/trunk: java/org/apache/catalina/connector/Connector.java java/org/apache/catalina/connector/OutputBuffer.java java/org/apache/catalina/connector/Response.java test/org/apache/catalina/connector/TestResponse.java

Author: markt
Date: Tue Jan  3 16:00:32 2017
New Revision: 1777151

URL: http://svn.apache.org/viewvc?rev=1777151&view=rev
Log:
Remove the requirement to specify the connector when creating a Response
For AJP connectors, base the default output buffer size on the configured AJP packet size rather than hard-coding the default based on the minimum permitted AJP packet size.

Modified:
    tomcat/trunk/java/org/apache/catalina/connector/Connector.java
    tomcat/trunk/java/org/apache/catalina/connector/OutputBuffer.java
    tomcat/trunk/java/org/apache/catalina/connector/Response.java
    tomcat/trunk/test/org/apache/catalina/connector/TestResponse.java

Modified: tomcat/trunk/java/org/apache/catalina/connector/Connector.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/connector/Connector.java?rev=1777151&r1=1777150&r2=1777151&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/connector/Connector.java (original)
+++ tomcat/trunk/java/org/apache/catalina/connector/Connector.java Tue Jan  3 16:00:32 2017
@@ -32,6 +32,7 @@ import org.apache.catalina.util.Lifecycl
 import org.apache.coyote.Adapter;
 import org.apache.coyote.ProtocolHandler;
 import org.apache.coyote.UpgradeProtocol;
+import org.apache.coyote.ajp.AbstractAjpProtocol;
 import org.apache.coyote.http11.AbstractHttp11JsseProtocol;
 import org.apache.juli.logging.Log;
 import org.apache.juli.logging.LogFactory;
@@ -824,8 +825,7 @@ public class Connector extends Lifecycle
      * @return a new Servlet request object
      */
     public Request createRequest() {
-        Request request = new Request(this);
-        return request;
+        return new Request(this);
     }
 
 
@@ -836,11 +836,12 @@ public class Connector extends Lifecycle
      * @return a new Servlet response object
      */
     public Response createResponse() {
-
-        Response response = new Response();
-        response.setConnector(this);
-        return (response);
-
+        if (protocolHandler instanceof AbstractAjpProtocol<?>) {
+            int packetSize = ((AbstractAjpProtocol<?>) protocolHandler).getPacketSize();
+            return new Response(packetSize - org.apache.coyote.ajp.Constants.SEND_HEAD_LEN);
+        } else {
+            return new Response();
+        }
     }
 
 

Modified: tomcat/trunk/java/org/apache/catalina/connector/OutputBuffer.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/connector/OutputBuffer.java?rev=1777151&r1=1777150&r2=1777151&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/connector/OutputBuffer.java (original)
+++ tomcat/trunk/java/org/apache/catalina/connector/OutputBuffer.java Tue Jan  3 16:00:32 2017
@@ -128,35 +128,21 @@ public class OutputBuffer extends Writer
 
     // ----------------------------------------------------------- Constructors
 
-
     /**
-     * Default constructor. Allocate the buffer with the default buffer size.
-     */
-    public OutputBuffer() {
-
-        this(DEFAULT_BUFFER_SIZE);
-
-    }
-
-
-    /**
-     * Alternate constructor which allows specifying the initial buffer size.
+     * Create the buffer with the specified initial size.
      *
      * @param size Buffer size to use
      */
     public OutputBuffer(int size) {
-
         bb = ByteBuffer.allocate(size);
         clear(bb);
         cb = CharBuffer.allocate(size);
         clear(cb);
-
     }
 
 
     // ------------------------------------------------------------- Properties
 
-
     /**
      * Associated Coyote response.
      *

Modified: tomcat/trunk/java/org/apache/catalina/connector/Response.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/connector/Response.java?rev=1777151&r1=1777150&r2=1777151&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/connector/Response.java (original)
+++ tomcat/trunk/java/org/apache/catalina/connector/Response.java Tue Jan  3 16:00:32 2017
@@ -98,23 +98,18 @@ public class Response implements HttpSer
     protected SimpleDateFormat format = null;
 
 
-    // ------------------------------------------------------------- Properties
+    public Response() {
+        this(OutputBuffer.DEFAULT_BUFFER_SIZE);
+    }
 
-    /**
-     * Set the Connector through which this Request was received.
-     *
-     * @param connector The new connector
-     */
-    public void setConnector(Connector connector) {
-        if("AJP/1.3".equals(connector.getProtocol())) {
-            // default size to size of one ajp-packet
-            outputBuffer = new OutputBuffer(8184);
-        } else {
-            outputBuffer = new OutputBuffer();
-        }
+
+    public Response(int outputBufferSize) {
+        outputBuffer = new OutputBuffer(outputBufferSize);
     }
 
 
+    // ------------------------------------------------------------- Properties
+
     /**
      * Coyote response.
      */
@@ -149,7 +144,7 @@ public class Response implements HttpSer
     /**
      * The associated output buffer.
      */
-    protected OutputBuffer outputBuffer;
+    protected final OutputBuffer outputBuffer;
 
 
     /**

Modified: tomcat/trunk/test/org/apache/catalina/connector/TestResponse.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/connector/TestResponse.java?rev=1777151&r1=1777150&r2=1777151&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/catalina/connector/TestResponse.java (original)
+++ tomcat/trunk/test/org/apache/catalina/connector/TestResponse.java Tue Jan  3 16:00:32 2017
@@ -601,7 +601,6 @@ public class TestResponse extends Tomcat
         Connector connector = new Connector();
         org.apache.coyote.Response cResponse = new org.apache.coyote.Response();
         Response response = new Response();
-        response.setConnector(connector);
         response.setCoyoteResponse(cResponse);
         Request request = new Request(connector);
         org.apache.coyote.Request cRequest = new org.apache.coyote.Request();



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org