You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jmeter-dev@jakarta.apache.org by se...@apache.org on 2007/02/05 23:36:41 UTC

svn commit: r503908 - /jakarta/jmeter/branches/rel-2-2/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPSampler.java

Author: sebb
Date: Mon Feb  5 14:36:40 2007
New Revision: 503908

URL: http://svn.apache.org/viewvc?view=rev&rev=503908
Log:
Bug 41543 - exception when webserver returns "500 Internal Server Error" and content-length is 0 

Modified:
    jakarta/jmeter/branches/rel-2-2/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPSampler.java

Modified: jakarta/jmeter/branches/rel-2-2/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPSampler.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/branches/rel-2-2/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPSampler.java?view=diff&rev=503908&r1=503907&r2=503908
==============================================================================
--- jakarta/jmeter/branches/rel-2-2/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPSampler.java (original)
+++ jakarta/jmeter/branches/rel-2-2/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPSampler.java Mon Feb  5 14:36:40 2007
@@ -41,6 +41,7 @@
 import org.apache.jmeter.testelement.property.CollectionProperty;
 import org.apache.jmeter.testelement.property.PropertyIterator;
 
+import org.apache.jmeter.util.JMeterUtils;
 import org.apache.jmeter.util.SSLManager;
 
 import org.apache.jorphan.logging.LoggingManager;
@@ -57,6 +58,8 @@
 
 	private static final int MAX_CONN_RETRIES = 10; // Maximum connection retries
 
+	private static final byte[] NULL_BA = new byte[0];// can share these
+	
 	/**
 	 * Constructor for the HTTPSampler object.
      * 
@@ -205,6 +208,13 @@
 	protected byte[] readResponse(HttpURLConnection conn, SampleResult res) throws IOException {
 		byte[] readBuffer = getThreadContext().getReadBuffer();
 		BufferedInputStream in;
+
+        if ((conn.getContentLength() == 0) && JMeterUtils.getPropDefault("httpsampler.obey_contentlength", false)) {
+            log.info("Content-Length: 0, not reading http-body");
+			res.setResponseHeaders(getResponseHeaders(conn));
+			return NULL_BA;
+		}
+
 		try {
             // works OK even if ContentEncoding is null
 			if (ENCODING_GZIP.equals(conn.getContentEncoding())) {
@@ -222,7 +232,16 @@
 				}
 			}
 			// Normal InputStream is not available
-			in = new BufferedInputStream(conn.getErrorStream());
+			InputStream errorStream = conn.getErrorStream();
+			if (errorStream == null) {
+				log.info("Error Response Code: "+conn.getResponseCode()+", Server sent no Errorpage");
+				res.setResponseHeaders(getResponseHeaders(conn));
+				return NULL_BA;
+			}
+			else {
+				log.info("Error Response Code: "+conn.getResponseCode());
+			}
+			in = new BufferedInputStream(errorStream);
 		} catch (Exception e) {
 			log.error("readResponse: "+e.toString());
 			Throwable cause = e.getCause();



---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org