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