From: markt Date: Wed, 11 Feb 2009 20:42:27 +0000 (+0000) Subject: Port r742915 to trunk. X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=4a37be5f45e2791bf6d8d40e5c627a055f1d8ac9;p=tomcat7.0 Port r742915 to trunk. 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 --- diff --git a/java/org/apache/jk/common/ChannelNioSocket.java b/java/org/apache/jk/common/ChannelNioSocket.java index ffefdd836..db93c10f1 100644 --- a/java/org/apache/jk/common/ChannelNioSocket.java +++ b/java/org/apache/jk/common/ChannelNioSocket.java @@ -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) { diff --git a/java/org/apache/jk/common/ChannelSocket.java b/java/org/apache/jk/common/ChannelSocket.java index 68dbb8dde..bf4990497 100644 --- a/java/org/apache/jk/common/ChannelSocket.java +++ b/java/org/apache/jk/common/ChannelSocket.java @@ -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; } } diff --git a/java/org/apache/jk/common/HandlerRequest.java b/java/org/apache/jk/common/HandlerRequest.java index 97357e80b..15a174d16 100644 --- a/java/org/apache/jk/common/HandlerRequest.java +++ b/java/org/apache/jk/common/HandlerRequest.java @@ -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; }