Author: markt
Date: Tue Sep 25 18:49:20 2012
New Revision: 1390047

URL: http://svn.apache.org/viewvc?rev=1390047&view=rev
Log:
Creating the map entries for the special request attributes was generating ~11% 
of the garbage in the load test. Re-factor so these entries are not created.

Modified:
    tomcat/trunk/java/org/apache/catalina/connector/Request.java
    tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java
    tomcat/trunk/java/org/apache/coyote/ProtocolHandler.java
    tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java

Modified: tomcat/trunk/java/org/apache/catalina/connector/Request.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/connector/Request.java?rev=1390047&r1=1390046&r2=1390047&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/connector/Request.java (original)
+++ tomcat/trunk/java/org/apache/catalina/connector/Request.java Tue Sep 25 
18:49:20 2012
@@ -3225,5 +3225,44 @@ public class Request
                         // NO-OP
                     }
                 });
+        specialAttributes.put(Globals.COMET_SUPPORTED_ATTR,
+                new SpecialAttributeAdapter() {
+                    @Override
+                    public Object get(Request request, String name) {
+                        return Boolean.valueOf(
+                                request.getConnector().getProtocolHandler(
+                                        ).isCometSupported());
+                    }
+                    @Override
+                    public void set(Request request, String name, Object 
value) {
+                        // NO-OP
+                    }
+                });
+        specialAttributes.put(Globals.COMET_TIMEOUT_SUPPORTED_ATTR,
+                new SpecialAttributeAdapter() {
+                    @Override
+                    public Object get(Request request, String name) {
+                        return Boolean.valueOf(
+                                request.getConnector().getProtocolHandler(
+                                        ).isCometTimeoutSupported());
+                    }
+                    @Override
+                    public void set(Request request, String name, Object 
value) {
+                        // NO-OP
+                    }
+                });
+        specialAttributes.put(Globals.SENDFILE_SUPPORTED_ATTR,
+                new SpecialAttributeAdapter() {
+                    @Override
+                    public Object get(Request request, String name) {
+                        return Boolean.valueOf(
+                                request.getConnector().getProtocolHandler(
+                                        ).isSendfileSupported());
+                    }
+                    @Override
+                    public void set(Request request, String name, Object 
value) {
+                        // NO-OP
+                    }
+                });
     }
 }

Modified: tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java?rev=1390047&r1=1390046&r2=1390047&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java (original)
+++ tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java Tue Sep 25 
18:49:20 2012
@@ -157,6 +157,24 @@ public abstract class AbstractProtocol i
     }
 
 
+    @Override
+    public boolean isCometSupported() {
+        return endpoint.getUseComet();
+    }
+
+
+    @Override
+    public boolean isCometTimeoutSupported() {
+        return endpoint.getUseCometTimeout();
+    }
+
+
+    @Override
+    public boolean isSendfileSupported() {
+        return endpoint.getUseSendfile();
+    }
+
+
     // ---------------------- Properties that are passed through to the 
EndPoint
 
     @Override

Modified: tomcat/trunk/java/org/apache/coyote/ProtocolHandler.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/ProtocolHandler.java?rev=1390047&r1=1390046&r2=1390047&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/ProtocolHandler.java (original)
+++ tomcat/trunk/java/org/apache/coyote/ProtocolHandler.java Tue Sep 25 
18:49:20 2012
@@ -88,4 +88,22 @@ public interface ProtocolHandler {
      * Requires APR/native library
      */
     public boolean isAprRequired();
+
+
+    /**
+     * Does this ProtocolHandler support Comet?
+     */
+    public boolean isCometSupported();
+
+
+    /**
+     * Does this ProtocolHandler support Comet timeouts?
+     */
+    public boolean isCometTimeoutSupported();
+
+
+    /**
+     * Does this ProtocolHandler support sendfile?
+     */
+    public boolean isSendfileSupported();
 }

Modified: 
tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java?rev=1390047&r1=1390046&r2=1390047&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java 
(original)
+++ tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java Tue 
Sep 25 18:49:20 2012
@@ -1279,26 +1279,6 @@ public abstract class AbstractHttp11Proc
             contentDelimitation = true;
         }
 
-        // Advertise sendfile support through a request attribute
-        if (endpoint.getUseSendfile()) {
-            request.setAttribute(
-                    org.apache.coyote.Constants.SENDFILE_SUPPORTED_ATTR,
-                    Boolean.TRUE);
-        }
-
-        // Advertise comet support through a request attribute
-        if (endpoint.getUseComet()) {
-            request.setAttribute(
-                    org.apache.coyote.Constants.COMET_SUPPORTED_ATTR,
-                    Boolean.TRUE);
-        }
-        // Advertise comet timeout support
-        if (endpoint.getUseCometTimeout()) {
-            request.setAttribute(
-                    org.apache.coyote.Constants.COMET_TIMEOUT_SUPPORTED_ATTR,
-                    Boolean.TRUE);
-        }
-
         if (error) {
             getAdapter().log(request, response, 0);
         }



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

Reply via email to