You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by co...@locus.apache.org on 2000/03/22 00:09:45 UTC
cvs commit: jakarta-tomcat/src/share/org/apache/tomcat/task GTest.java
costin 00/03/21 15:09:45
Modified: src/etc test-tomcat.xml
src/share/org/apache/tomcat/core
BufferedServletInputStream.java
src/share/org/apache/tomcat/service/http
HttpConnectionHandler.java
src/share/org/apache/tomcat/task GTest.java
Log:
Fixed bug #81 - hang in POST. The problem was HttpAdapter which set no limits.
( checked Ajp adapters - all are fine )
Revision Changes Path
1.14 +7 -0 jakarta-tomcat/src/etc/test-tomcat.xml
Index: test-tomcat.xml
===================================================================
RCS file: /home/cvs/jakarta-tomcat/src/etc/test-tomcat.xml,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- test-tomcat.xml 2000/03/16 21:01:45 1.13
+++ test-tomcat.xml 2000/03/21 23:09:44 1.14
@@ -520,6 +520,13 @@
/>
</target>
+ <target name="post1">
+ <gtest description="Content Type Test"
+ request="POST /test/servlet/Post HTTP/1.0"
+ debug="10"
+ content="Test POST BODY" />
+ </target>
+
<target name="post">
<gtest request="POST /test/servlet/request.NotThere HTTP/1.0"
content="name=lightness of being"
1.7 +3 -4 jakarta-tomcat/src/share/org/apache/tomcat/core/BufferedServletInputStream.java
Index: BufferedServletInputStream.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/core/BufferedServletInputStream.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- BufferedServletInputStream.java 2000/02/14 04:59:38 1.6
+++ BufferedServletInputStream.java 2000/03/21 23:09:44 1.7
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/core/BufferedServletInputStream.java,v 1.6 2000/02/14 04:59:38 costin Exp $
- * $Revision: 1.6 $
- * $Date: 2000/02/14 04:59:38 $
+ * $Header: /home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/core/BufferedServletInputStream.java,v 1.7 2000/03/21 23:09:44 costin Exp $
+ * $Revision: 1.7 $
+ * $Date: 2000/03/21 23:09:44 $
*
* ====================================================================
*
@@ -79,7 +79,6 @@
* @author James Duncan Davidson <du...@eng.sun.com>
* @author Jason Hunter <jc...@eng.sun.com>
*/
-
public class BufferedServletInputStream extends ServletInputStream {
// XXX
1.16 +10 -3 jakarta-tomcat/src/share/org/apache/tomcat/service/http/HttpConnectionHandler.java
Index: HttpConnectionHandler.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/service/http/HttpConnectionHandler.java,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -r1.15 -r1.16
--- HttpConnectionHandler.java 2000/02/22 21:06:46 1.15
+++ HttpConnectionHandler.java 2000/03/21 23:09:44 1.16
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/service/http/HttpConnectionHandler.java,v 1.15 2000/02/22 21:06:46 costin Exp $
- * $Revision: 1.15 $
- * $Date: 2000/02/22 21:06:46 $
+ * $Header: /home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/service/http/HttpConnectionHandler.java,v 1.16 2000/03/21 23:09:44 costin Exp $
+ * $Revision: 1.16 $
+ * $Date: 2000/03/21 23:09:44 $
*
* ====================================================================
*
@@ -141,6 +141,13 @@
reqA.setServerName(hostHeader);
}
+
+ int contentLength = reqA.getFacade().getIntHeader("content-length");
+ if (contentLength != -1) {
+ BufferedServletInputStream sis =
+ (BufferedServletInputStream)reqA.getInputStream();
+ sis.setLimit(contentLength);
+ }
// System.out.print("3");
contextM.service( reqA, resA );
1.5 +11 -9 jakarta-tomcat/src/share/org/apache/tomcat/task/GTest.java
Index: GTest.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/task/GTest.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- GTest.java 2000/02/18 18:14:52 1.4
+++ GTest.java 2000/03/21 23:09:45 1.5
@@ -229,7 +229,9 @@
InputStream is= s.getInputStream();
// Write the request
- OutputStreamWriter out=new OutputStreamWriter(s.getOutputStream());
+ s.setSoLinger( true, 1000);
+ OutputStream os=s.getOutputStream();
+ OutputStreamWriter out=new OutputStreamWriter(os);
PrintWriter pw = new PrintWriter(out);
try {
@@ -243,7 +245,7 @@
pw.println("");
if( content != null) {
- pw.println(content);
+ pw.print(content);
// XXX no /n at the end -see HTTP specs!
}
@@ -256,6 +258,8 @@
// http 0.9
if( request.indexOf( "HTTP/1." ) > -1) {
responseLine = read( is );
+
+ if( debug>0) System.out.println("RESPONSE: " + responseLine );
headers=parseHeaders( is );
}
@@ -264,12 +268,7 @@
if(result!=null)
responseBody=result.toString();
- if( debug>0) {
- System.out.println("DEBUG Response: " );
- System.out.println(responseLine );
- System.out.println(responseBody );
- System.out.println("DEBUG END " );
- }
+ if(debug>0) System.out.println("BODY: " + responseBody );
} catch( SocketException ex ) {
System.out.println("Socket Exception: " + ex);
ex.printStackTrace();
@@ -381,6 +380,8 @@
}
parseHeader( line, headers);
+ if( debug>0) System.out.println("HEADER: " +line +"X" );
+
}
return headers;
@@ -416,6 +417,7 @@
while (true) {
try {
int ch = input.read();
+ // System.out.println("XXX " + (char)ch );
if (ch < 0) {
if (sb.length() == 0) {
if(debug>0) System.out.println("Error reading line " + ch + " " + sb.toString() );
@@ -431,7 +433,7 @@
System.out.println("Error reading : " + ex );
debug=1;
if(debug>0) System.out.println("Partial read: " + sb.toString());
- //ex.printStackTrace();
+ ex.printStackTrace();
//break;
}
}