Port r742915 to trunk.
authormarkt <markt@13f79535-47bb-0310-9956-ffa450edef68>
Wed, 11 Feb 2009 20:42:27 +0000 (20:42 +0000)
committermarkt <markt@13f79535-47bb-0310-9956-ffa450edef68>
Wed, 11 Feb 2009 20:42:27 +0000 (20:42 +0000)
Make sure the 400 is returned to the browser. (like other connectors).

git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@743497 13f79535-47bb-0310-9956-ffa450edef68

java/org/apache/jk/common/ChannelNioSocket.java
java/org/apache/jk/common/ChannelSocket.java
java/org/apache/jk/common/HandlerRequest.java

index ffefdd8..db93c10 100644 (file)
@@ -56,6 +56,7 @@ import org.apache.jk.core.WorkerEnv;
 import org.apache.coyote.Request;
 import org.apache.coyote.RequestGroupInfo;
 import org.apache.coyote.RequestInfo;
+import org.apache.coyote.ActionCode;
 import org.apache.tomcat.util.threads.ThreadPool;
 import org.apache.tomcat.util.threads.ThreadPoolRunnable;
 
@@ -854,6 +855,7 @@ public class ChannelNioSocket extends JkHandler
                     status= invoke( recv, ep );
                     if( status != JkHandler.OK ) {
                         log.warn("processCallbacks status " + status );
+                        ep.action(ActionCode.ACTION_CLOSE, ep.getRequest().getResponse());
                         return false;
                     }
                     synchronized(this) {
index 68dbb8d..bf49904 100644 (file)
@@ -45,6 +45,7 @@ import org.apache.jk.core.WorkerEnv;
 import org.apache.coyote.Request;
 import org.apache.coyote.RequestGroupInfo;
 import org.apache.coyote.RequestInfo;
+import org.apache.coyote.ActionCode;
 import org.apache.tomcat.util.modeler.Registry;
 import org.apache.tomcat.util.threads.ThreadPool;
 import org.apache.tomcat.util.threads.ThreadPoolRunnable;
@@ -697,6 +698,7 @@ public class ChannelSocket extends JkHandler
                 status= this.invoke( recv, ep );
                 if( status!= JkHandler.OK ) {
                     log.warn("processCallbacks status " + status );
+                    ep.action(ActionCode.ACTION_CLOSE, ep.getRequest().getResponse());
                     break;
                 }
             }
index 97357e8..15a174d 100644 (file)
@@ -264,8 +264,16 @@ public class HandlerRequest extends JkHandler
                     twa.setParam(control, ep.getRequest().unparsedURI());
                 }
             } catch( Exception ex ) {
+                /* If we are here it is because we have a bad header or something like that */
                 log.error( "Error decoding request ", ex );
                 msg.dump( "Incomming message");
+                Response res=ep.getRequest().getResponse();
+                if ( res==null ) {
+                    res=new Response();
+                    ep.getRequest().setResponse(res);
+                }
+                res.setMessage("Bad Request");
+                res.setStatus(400);
                 return ERROR;
             }