rp.setStage(org.apache.coyote.Constants.STAGE_KEEPALIVE);
recycle();
-
}
// Add the socket to the poller
rp.setStage(org.apache.coyote.Constants.STAGE_ENDED);
if (error || endpoint.isPaused()) {
- recycle();
return SocketState.CLOSED;
} else if (isAsync()) {
return SocketState.LONG;
} else {
- recycle();
return SocketState.OPEN;
}
}
if (isAsync()) {
if (error) {
request.updateCounters();
- recycle();
return SocketState.CLOSED;
} else {
return SocketState.LONG;
}
} else {
request.updateCounters();
- recycle();
if (error) {
return SocketState.CLOSED;
} else {
connections.put(socket, processor);
socket.setAsync(true);
} else {
+ processor.recycle();
recycledProcessors.offer(processor);
}
return state;
// less-than-verbose logs.
log.error(sm.getString("ajpprotocol.proto.error"), e);
}
+ processor.recycle();
recycledProcessors.offer(processor);
return SocketState.CLOSED;
}
}
if (state != SocketState.LONG && state != SocketState.ASYNC_END) {
connections.remove(socket);
+ processor.recycle();
recycledProcessors.offer(processor);
if (state == SocketState.OPEN) {
((AprEndpoint)proto.endpoint).getPoller().add(socket.getSocket().longValue());
rp.setStage(org.apache.coyote.Constants.STAGE_KEEPALIVE);
recycle();
-
}
rp.setStage(org.apache.coyote.Constants.STAGE_ENDED);
if (isAsync() && !error && !endpoint.isPaused()) {
return SocketState.LONG;
} else {
- recycle();
input = null;
output = null;
return SocketState.CLOSED;
if (error) {
response.setStatus(500);
request.updateCounters();
- recycle();
input = null;
output = null;
return SocketState.CLOSED;
response.setStatus(500);
}
request.updateCounters();
- recycle();
input = null;
output = null;
return SocketState.CLOSED;
return processor.asyncPostProcess();
} else {
socket.setAsync(false);
+ processor.recycle();
recycledProcessors.offer(processor);
}
return state;
// less-than-verbose logs.
log.error(sm.getString("ajpprotocol.proto.error"), e);
}
+ processor.recycle();
recycledProcessors.offer(processor);
return SocketState.CLOSED;
}
if (error) {
inputBuffer.nextRequest();
outputBuffer.nextRequest();
- recycle();
return SocketState.CLOSED;
} else if (!comet) {
inputBuffer.nextRequest();
outputBuffer.nextRequest();
- recycle();
return SocketState.OPEN;
} else {
return SocketState.LONG;
rp.setStage(org.apache.coyote.Constants.STAGE_ENDED);
if (error || endpoint.isPaused()) {
- recycle();
return SocketState.CLOSED;
} else if (comet || isAsync()) {
return SocketState.LONG;
} else {
- recycle();
return (openSocket) ? SocketState.OPEN : SocketState.CLOSED;
}
rp.setStage(org.apache.coyote.Constants.STAGE_ENDED);
if (error) {
- recycle();
return SocketState.CLOSED;
} else if (isAsync()) {
return SocketState.LONG;
} else {
- recycle();
if (!keepAlive) {
return SocketState.CLOSED;
} else {
if (state != SocketState.LONG) {
connections.remove(socket.getSocket());
socket.setAsync(false);
+ processor.recycle();
recycledProcessors.offer(processor);
if (state == SocketState.OPEN) {
((AprEndpoint)proto.endpoint).getPoller().add(socket.getSocket().longValue());
socket.getSocket().longValue());
}
} else {
+ processor.recycle();
recycledProcessors.offer(processor);
}
return state;
Http11AprProtocol.log.error(
sm.getString("http11protocol.proto.error"), e);
}
+ processor.recycle();
recycledProcessors.offer(processor);
return SocketState.CLOSED;
}
if (state != SocketState.LONG && state != SocketState.ASYNC_END) {
connections.remove(socket.getSocket());
socket.setAsync(false);
+ processor.recycle();
recycledProcessors.offer(processor);
if (state == SocketState.OPEN) {
((AprEndpoint)proto.endpoint).getPoller().add(socket.getSocket().longValue());
rp.setStage(org.apache.coyote.Constants.STAGE_ENDED);
if (error) {
- recycle();
return SocketState.CLOSED;
} else if (!comet) {
- recycle();
return (keepAlive)?SocketState.OPEN:SocketState.CLOSED;
} else {
return SocketState.LONG;
rp.setStage(org.apache.coyote.Constants.STAGE_ENDED);
if (error) {
- recycle();
return SocketState.CLOSED;
} else if (!comet && !isAsync()) {
- recycle();
return (keepAlive)?SocketState.OPEN:SocketState.CLOSED;
} else {
return SocketState.LONG;
boolean keptAlive = false;
boolean openSocket = false;
- boolean recycle = true;
+ boolean readComplete = true;
final KeyAttachment ka = (KeyAttachment)socket.getAttachment(false);
while (!error && keepAlive && !comet && !isAsync() && !endpoint.isPaused()) {
} else {
// Started to read request line. Need to keep processor
// associated with socket
- recycle = false;
+ readComplete = false;
}
if (endpoint.isPaused()) {
// 503 - Service unavailable
//we've read part of the request, don't recycle it
//instead associate it with the socket
openSocket = true;
- recycle = false;
+ readComplete = false;
break;
}
request.setStartTime(System.currentTimeMillis());
rp.setStage(org.apache.coyote.Constants.STAGE_ENDED);
if (error || endpoint.isPaused()) {
- recycle();
return SocketState.CLOSED;
} else if (comet || isAsync()) {
return SocketState.LONG;
} else {
- if (recycle) {
- recycle();
- }
- //return (openSocket) ? (SocketState.OPEN) : SocketState.CLOSED;
- return (openSocket) ? (recycle?SocketState.OPEN:SocketState.LONG) : SocketState.CLOSED;
+ return (openSocket) ? (readComplete?SocketState.OPEN:SocketState.LONG) : SocketState.CLOSED;
}
}
rp.setStage(org.apache.coyote.Constants.STAGE_ENDED);
if (error) {
- recycle();
return SocketState.CLOSED;
} else if (isAsync()) {
return SocketState.LONG;
} else {
- recycle();
if (!keepAlive) {
return SocketState.CLOSED;
} else {
return processor.asyncPostProcess();
} else {
socket.setAsync(false);
+ processor.recycle();
recycledProcessors.offer(processor);
}
return state;
// less-than-verbose logs.
log.error(sm.getString("http11protocol.proto.error"), e);
}
+ processor.recycle();
recycledProcessors.offer(processor);
return SocketState.CLOSED;
}