From 1951b307f9ed4831a67090bd4ee6f5d55c7fc44c Mon Sep 17 00:00:00 2001 From: markt Date: Wed, 15 Jun 2011 16:24:42 +0000 Subject: [PATCH] Pull up asyncDispatch() git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@1136108 13f79535-47bb-0310-9956-ffa450edef68 --- .../apache/coyote/ajp/AbstractAjpProcessor.java | 44 ++++++++++++++++++++++ java/org/apache/coyote/ajp/AjpAprProcessor.java | 41 -------------------- java/org/apache/coyote/ajp/AjpNioProcessor.java | 42 --------------------- java/org/apache/coyote/ajp/AjpProcessor.java | 40 -------------------- 4 files changed, 44 insertions(+), 123 deletions(-) diff --git a/java/org/apache/coyote/ajp/AbstractAjpProcessor.java b/java/org/apache/coyote/ajp/AbstractAjpProcessor.java index 480ddfbae..9ef9f4521 100644 --- a/java/org/apache/coyote/ajp/AbstractAjpProcessor.java +++ b/java/org/apache/coyote/ajp/AbstractAjpProcessor.java @@ -19,6 +19,7 @@ package org.apache.coyote.ajp; import java.io.ByteArrayInputStream; import java.io.IOException; +import java.io.InterruptedIOException; import java.net.InetAddress; import java.security.NoSuchProviderException; import java.security.cert.CertificateFactory; @@ -32,7 +33,9 @@ import org.apache.coyote.AsyncContextCallback; import org.apache.coyote.AsyncStateMachine; import org.apache.coyote.InputBuffer; import org.apache.coyote.Request; +import org.apache.coyote.RequestInfo; import org.apache.juli.logging.Log; +import org.apache.tomcat.util.ExceptionUtils; import org.apache.tomcat.util.buf.ByteChunk; import org.apache.tomcat.util.buf.HexUtils; import org.apache.tomcat.util.buf.MessageBytes; @@ -40,6 +43,7 @@ import org.apache.tomcat.util.http.HttpMessages; import org.apache.tomcat.util.http.MimeHeaders; import org.apache.tomcat.util.net.AbstractEndpoint.Handler.SocketState; import org.apache.tomcat.util.net.SSLSupport; +import org.apache.tomcat.util.net.SocketStatus; import org.apache.tomcat.util.res.StringManager; /** @@ -375,6 +379,46 @@ public abstract class AbstractAjpProcessor extends AbstractProcessor { protected abstract void finish() throws IOException; + public SocketState asyncDispatch(SocketStatus status) { + + RequestInfo rp = request.getRequestProcessor(); + try { + rp.setStage(org.apache.coyote.Constants.STAGE_SERVICE); + error = !adapter.asyncDispatch(request, response, status); + } catch (InterruptedIOException e) { + error = true; + } catch (Throwable t) { + ExceptionUtils.handleThrowable(t); + getLog().error(sm.getString("http11processor.request.process"), t); + // 500 - Internal Server Error + response.setStatus(500); + adapter.log(request, response, 0); + error = true; + } + + rp.setStage(org.apache.coyote.Constants.STAGE_ENDED); + + if (error) { + response.setStatus(500); + } + if (isAsync()) { + if (error) { + request.updateCounters(); + return SocketState.CLOSED; + } else { + return SocketState.LONG; + } + } else { + request.updateCounters(); + if (error) { + return SocketState.CLOSED; + } else { + return SocketState.OPEN; + } + } + } + + public void recycle() { asyncStateMachine.recycle(); diff --git a/java/org/apache/coyote/ajp/AjpAprProcessor.java b/java/org/apache/coyote/ajp/AjpAprProcessor.java index f48a0f480..a73b232a0 100644 --- a/java/org/apache/coyote/ajp/AjpAprProcessor.java +++ b/java/org/apache/coyote/ajp/AjpAprProcessor.java @@ -333,47 +333,6 @@ public class AjpAprProcessor extends AbstractAjpProcessor { } - public SocketState asyncDispatch(SocketStatus status) { - - RequestInfo rp = request.getRequestProcessor(); - try { - rp.setStage(org.apache.coyote.Constants.STAGE_SERVICE); - error = !adapter.asyncDispatch(request, response, status); - } catch (InterruptedIOException e) { - error = true; - } catch (Throwable t) { - ExceptionUtils.handleThrowable(t); - log.error(sm.getString("http11processor.request.process"), t); - // 500 - Internal Server Error - response.setStatus(500); - adapter.log(request, response, 0); - error = true; - } - - rp.setStage(org.apache.coyote.Constants.STAGE_ENDED); - - if (error) { - response.setStatus(500); - } - if (isAsync()) { - if (error) { - request.updateCounters(); - return SocketState.CLOSED; - } else { - return SocketState.LONG; - } - } else { - request.updateCounters(); - if (error) { - return SocketState.CLOSED; - } else { - return SocketState.OPEN; - } - } - - } - - // ----------------------------------------------------- ActionHook Methods diff --git a/java/org/apache/coyote/ajp/AjpNioProcessor.java b/java/org/apache/coyote/ajp/AjpNioProcessor.java index cef0e8a4a..f9bcf0ca8 100644 --- a/java/org/apache/coyote/ajp/AjpNioProcessor.java +++ b/java/org/apache/coyote/ajp/AjpNioProcessor.java @@ -332,48 +332,6 @@ public class AjpNioProcessor extends AbstractAjpProcessor { } - public SocketState asyncDispatch(SocketStatus status) { - - RequestInfo rp = request.getRequestProcessor(); - try { - rp.setStage(org.apache.coyote.Constants.STAGE_SERVICE); - error = !adapter.asyncDispatch(request, response, status); - } catch (InterruptedIOException e) { - error = true; - } catch (Throwable t) { - ExceptionUtils.handleThrowable(t); - log.error(sm.getString("http11processor.request.process"), t); - // 500 - Internal Server Error - response.setStatus(500); - adapter.log(request, response, 0); - error = true; - } - - rp.setStage(org.apache.coyote.Constants.STAGE_ENDED); - - if (error) { - response.setStatus(500); - } - if (isAsync()) { - if (error) { - request.updateCounters(); - return SocketState.CLOSED; - } else { - return SocketState.LONG; - } - } else { - request.updateCounters(); - if (error) { - return SocketState.CLOSED; - } else { - return SocketState.OPEN; - } - } - - - } - - // ----------------------------------------------------- ActionHook Methods diff --git a/java/org/apache/coyote/ajp/AjpProcessor.java b/java/org/apache/coyote/ajp/AjpProcessor.java index 2f4127143..19d5142cd 100644 --- a/java/org/apache/coyote/ajp/AjpProcessor.java +++ b/java/org/apache/coyote/ajp/AjpProcessor.java @@ -339,46 +339,6 @@ public class AjpProcessor extends AbstractAjpProcessor { } - public SocketState asyncDispatch(SocketStatus status) { - - RequestInfo rp = request.getRequestProcessor(); - try { - rp.setStage(org.apache.coyote.Constants.STAGE_SERVICE); - error = !adapter.asyncDispatch(request, response, status); - } catch (InterruptedIOException e) { - error = true; - } catch (Throwable t) { - ExceptionUtils.handleThrowable(t); - log.error(sm.getString("http11processor.request.process"), t); - // 500 - Internal Server Error - response.setStatus(500); - adapter.log(request, response, 0); - error = true; - } - - rp.setStage(org.apache.coyote.Constants.STAGE_ENDED); - - if (error) { - response.setStatus(500); - } - if (isAsync()) { - if (error) { - request.updateCounters(); - return SocketState.CLOSED; - } else { - return SocketState.LONG; - } - } else { - request.updateCounters(); - if (error) { - return SocketState.CLOSED; - } else { - return SocketState.OPEN; - } - } - } - - @Override public void recycle() { super.recycle(); -- 2.11.0