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