Pull up asyncDispatch()
authormarkt <markt@13f79535-47bb-0310-9956-ffa450edef68>
Wed, 15 Jun 2011 16:24:42 +0000 (16:24 +0000)
committermarkt <markt@13f79535-47bb-0310-9956-ffa450edef68>
Wed, 15 Jun 2011 16:24:42 +0000 (16:24 +0000)
git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@1136108 13f79535-47bb-0310-9956-ffa450edef68

java/org/apache/coyote/ajp/AbstractAjpProcessor.java
java/org/apache/coyote/ajp/AjpAprProcessor.java
java/org/apache/coyote/ajp/AjpNioProcessor.java
java/org/apache/coyote/ajp/AjpProcessor.java

index 480ddfb..9ef9f45 100644 (file)
@@ -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();
 
index f48a0f4..a73b232 100644 (file)
@@ -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
 
 
index cef0e8a..f9bcf0c 100644 (file)
@@ -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
 
 
index 2f41271..19d5142 100644 (file)
@@ -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();