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: [email protected]
For additional commands, e-mail: [email protected]