Author: sebb
Date: Wed Apr 20 00:22:12 2011
New Revision: 1095243
URL: http://svn.apache.org/viewvc?rev=1095243&view=rev
Log:
Cannot rely on initial call to getReceivedBytesCount being the same as the
header byte count - it can be larger if the socket returns a larger chunk - so
calculate header size from the response headers.
Modified:
jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPHC4Impl.java
Modified:
jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPHC4Impl.java
URL:
http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPHC4Impl.java?rev=1095243&r1=1095242&r2=1095243&view=diff
==============================================================================
---
jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPHC4Impl.java
(original)
+++
jakarta/jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPHC4Impl.java
Wed Apr 20 00:22:12 2011
@@ -266,14 +266,6 @@ public class HTTPHC4Impl extends HTTPHCA
// Needs to be done after execute to pick up all the headers
res.setRequestHeaders(getConnectionHeaders((HttpRequest)
localContext.getAttribute(ExecutionContext.HTTP_REQUEST)));
- // Fetch the metrics now, so we can get the header count
-
-// HttpConnection conn = (HttpConnection)
localContext.getAttribute(ExecutionContext.HTTP_REQUEST); // this works
-// HttpConnectionMetrics metrics = conn.getMetrics(); // this fails
on http core 4.1 with a HEAD request
- // alternate hack to be removed when httpcore fixed
- HttpConnectionMetrics metrics = (HttpConnectionMetrics)
localContext.getAttribute(CONTEXT_METRICS);
- long headerBytes = metrics.getReceivedBytesCount();
-
HttpEntity entity = httpResponse.getEntity();
if (entity != null) {
InputStream instream = entity.getContent();
@@ -306,6 +298,12 @@ public class HTTPHC4Impl extends HTTPHCA
}
// record some sizes to allow HTTPSampleResult.getBytes() with
different options
+ HttpConnectionMetrics metrics = (HttpConnectionMetrics)
localContext.getAttribute(CONTEXT_METRICS);
+ long headerBytes =
+ res.getResponseHeaders().length() // condensed length
(without \r)
+ + httpResponse.getAllHeaders().length // Add \r for each header
+ + 1 // Add \r for initial header
+ + 2; // final \r\n before data
long totalBytes = metrics.getReceivedBytesCount();
res.setHeadersSize((int) headerBytes);
res.setBodySize((int)(totalBytes - headerBytes));
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]