Author: remy.maucherat(a)jboss.com
Date: 2011-03-13 13:37:45 -0400 (Sun, 13 Mar 2011)
New Revision: 1675
Modified:
trunk/java/org/apache/coyote/ajp/AjpAprProtocol.java
trunk/java/org/apache/coyote/ajp/AjpProtocol.java
trunk/java/org/apache/coyote/http11/Http11AprProtocol.java
trunk/java/org/apache/coyote/http11/Http11Protocol.java
Log:
- Set the global RP out of the if (which is going to be disabled 99% of the time now).
- Back out of not recycling request processors for java.io HTTP, it looks too expensive to
be practical.
Modified: trunk/java/org/apache/coyote/ajp/AjpAprProtocol.java
===================================================================
--- trunk/java/org/apache/coyote/ajp/AjpAprProtocol.java 2011-03-12 21:30:43 UTC (rev
1674)
+++ trunk/java/org/apache/coyote/ajp/AjpAprProtocol.java 2011-03-13 17:37:45 UTC (rev
1675)
@@ -523,14 +523,14 @@
}
protected void register(AjpAprProcessor processor) {
- if (org.apache.tomcat.util.Constants.ENABLE_MODELER &&
proto.getDomain() != null) {
+ RequestInfo rp = processor.getRequest().getRequestProcessor();
+ rp.setGlobalProcessor(global);
+ if (org.apache.tomcat.util.Constants.ENABLE_MODELER &&
proto.getDomain() != null) {
synchronized (this) {
try {
long count = registerCount.incrementAndGet();
- RequestInfo rp = processor.getRequest().getRequestProcessor();
- rp.setGlobalProcessor(global);
ObjectName rpName = new ObjectName
- (proto.getDomain() +
":type=RequestProcessor,worker="
+ (proto.getDomain() + ":type=RequestProcessor,worker="
+ proto.getName() + ",name=AjpRequest" +
count);
if (log.isDebugEnabled()) {
log.debug("Register " + rpName);
@@ -545,11 +545,11 @@
}
protected void unregister(AjpAprProcessor processor) {
+ RequestInfo rp = processor.getRequest().getRequestProcessor();
+ rp.setGlobalProcessor(null);
if (org.apache.tomcat.util.Constants.ENABLE_MODELER &&
proto.getDomain() != null) {
synchronized (this) {
try {
- RequestInfo rp = processor.getRequest().getRequestProcessor();
- rp.setGlobalProcessor(null);
ObjectName rpName = rp.getRpName();
if (log.isDebugEnabled()) {
log.debug("Unregister " + rpName);
Modified: trunk/java/org/apache/coyote/ajp/AjpProtocol.java
===================================================================
--- trunk/java/org/apache/coyote/ajp/AjpProtocol.java 2011-03-12 21:30:43 UTC (rev 1674)
+++ trunk/java/org/apache/coyote/ajp/AjpProtocol.java 2011-03-13 17:37:45 UTC (rev 1675)
@@ -486,12 +486,12 @@
}
protected void register(AjpProcessor processor) {
+ RequestInfo rp = processor.getRequest().getRequestProcessor();
+ rp.setGlobalProcessor(global);
if (org.apache.tomcat.util.Constants.ENABLE_MODELER &&
proto.getDomain() != null) {
synchronized (this) {
try {
long count = registerCount.incrementAndGet();
- RequestInfo rp = processor.getRequest().getRequestProcessor();
- rp.setGlobalProcessor(global);
ObjectName rpName = new ObjectName
(proto.getDomain() +
":type=RequestProcessor,worker="
+ proto.getName() + ",name=AjpRequest" +
count);
@@ -508,11 +508,11 @@
}
protected void unregister(AjpProcessor processor) {
+ RequestInfo rp = processor.getRequest().getRequestProcessor();
+ rp.setGlobalProcessor(null);
if (org.apache.tomcat.util.Constants.ENABLE_MODELER &&
proto.getDomain() != null) {
synchronized (this) {
try {
- RequestInfo rp = processor.getRequest().getRequestProcessor();
- rp.setGlobalProcessor(null);
ObjectName rpName = rp.getRpName();
if (log.isDebugEnabled()) {
log.debug("Unregister " + rpName);
Modified: trunk/java/org/apache/coyote/http11/Http11AprProtocol.java
===================================================================
--- trunk/java/org/apache/coyote/http11/Http11AprProtocol.java 2011-03-12 21:30:43 UTC
(rev 1674)
+++ trunk/java/org/apache/coyote/http11/Http11AprProtocol.java 2011-03-13 17:37:45 UTC
(rev 1675)
@@ -684,12 +684,12 @@
}
protected void register(Http11AprProcessor processor) {
+ RequestInfo rp = processor.getRequest().getRequestProcessor();
+ rp.setGlobalProcessor(global);
if (org.apache.tomcat.util.Constants.ENABLE_MODELER &&
proto.getDomain() != null) {
synchronized (this) {
try {
long count = registerCount.incrementAndGet();
- RequestInfo rp = processor.getRequest().getRequestProcessor();
- rp.setGlobalProcessor(global);
ObjectName rpName = new ObjectName
(proto.getDomain() +
":type=RequestProcessor,worker="
+ proto.getName() + ",name=HttpRequest" +
count);
@@ -706,11 +706,11 @@
}
protected void unregister(Http11AprProcessor processor) {
+ RequestInfo rp = processor.getRequest().getRequestProcessor();
+ rp.setGlobalProcessor(null);
if (org.apache.tomcat.util.Constants.ENABLE_MODELER &&
proto.getDomain() != null) {
synchronized (this) {
try {
- RequestInfo rp = processor.getRequest().getRequestProcessor();
- rp.setGlobalProcessor(null);
ObjectName rpName = rp.getRpName();
if (log.isDebugEnabled()) {
log.debug("Unregister " + rpName);
Modified: trunk/java/org/apache/coyote/http11/Http11Protocol.java
===================================================================
--- trunk/java/org/apache/coyote/http11/Http11Protocol.java 2011-03-12 21:30:43 UTC (rev
1674)
+++ trunk/java/org/apache/coyote/http11/Http11Protocol.java 2011-03-13 17:37:45 UTC (rev
1675)
@@ -550,13 +550,12 @@
protected static class Http11ConnectionHandler implements Handler {
protected Http11Protocol proto;
- protected AtomicLong registerCount =
(org.apache.tomcat.util.Constants.LOW_MEMORY) ? null : new AtomicLong(0);
+ protected AtomicLong registerCount = new AtomicLong(0);
protected RequestGroupInfo global = new RequestGroupInfo();
protected ConcurrentHashMap<Socket, Http11Processor> connections =
new ConcurrentHashMap<Socket, Http11Processor>();
protected ConcurrentLinkedQueue<Http11Processor> recycledProcessors =
- (org.apache.tomcat.util.Constants.LOW_MEMORY) ? null :
new ConcurrentLinkedQueue<Http11Processor>() {
protected AtomicInteger size = new AtomicInteger(0);
public boolean offer(Http11Processor processor) {
@@ -627,9 +626,7 @@
} finally {
if (state != SocketState.LONG) {
connections.remove(socket);
- if (recycledProcessors != null) {
- recycledProcessors.offer(result);
- }
+ recycledProcessors.offer(result);
} else {
if (proto.endpoint.isRunning()) {
proto.endpoint.getEventPoller().add(socket,
result.getTimeout(),
@@ -643,7 +640,7 @@
}
public SocketState process(Socket socket) {
- Http11Processor processor = (recycledProcessors != null) ?
recycledProcessors.poll() : null;
+ Http11Processor processor = recycledProcessors.poll();
try {
if (processor == null) {
@@ -665,7 +662,7 @@
connections.put(socket, processor);
proto.endpoint.getEventPoller().add(socket, processor.getTimeout(),
processor.getResumeNotification(), false);
- } else if (recycledProcessors != null) {
+ } else {
recycledProcessors.offer(processor);
}
return state;
@@ -691,9 +688,7 @@
Http11Protocol.log.error
(sm.getString("http11protocol.proto.error"), e);
}
- if (recycledProcessors != null) {
- recycledProcessors.offer(processor);
- }
+ recycledProcessors.offer(processor);
return SocketState.CLOSED;
}
@@ -713,19 +708,17 @@
processor.setSocketBuffer(proto.socketBuffer);
processor.setMaxSavePostSize(proto.maxSavePostSize);
processor.setServer(proto.server);
- if (!org.apache.tomcat.util.Constants.LOW_MEMORY) {
- register(processor);
- }
+ register(processor);
return processor;
}
protected void register(Http11Processor processor) {
+ RequestInfo rp = processor.getRequest().getRequestProcessor();
+ rp.setGlobalProcessor(global);
if (org.apache.tomcat.util.Constants.ENABLE_MODELER &&
proto.getDomain() != null) {
synchronized (this) {
try {
long count = registerCount.incrementAndGet();
- RequestInfo rp = processor.getRequest().getRequestProcessor();
- rp.setGlobalProcessor(global);
ObjectName rpName = new ObjectName
(proto.getDomain() +
":type=RequestProcessor,worker="
+ proto.getName() + ",name=HttpRequest" +
count);
@@ -742,11 +735,11 @@
}
protected void unregister(Http11Processor processor) {
+ RequestInfo rp = processor.getRequest().getRequestProcessor();
+ rp.setGlobalProcessor(null);
if (org.apache.tomcat.util.Constants.ENABLE_MODELER &&
proto.getDomain() != null) {
synchronized (this) {
try {
- RequestInfo rp = processor.getRequest().getRequestProcessor();
- rp.setGlobalProcessor(null);
ObjectName rpName = rp.getRpName();
if (log.isDebugEnabled()) {
log.debug("Unregister " + rpName);