Created attachment 30501 [details] patch The problem appears in version 2.9 and in revision 1498029. I attached a two-line patch (patch.diff) that fixes it. In method "SoapSampler.setPostHeaders", the loop over the "HeaderManager mngr" keeps overriding "length" with "Integer.parseInt(hd.getValue())". Therefore, only the last written value is visible out of the loop and all the other writes and iterations are not necessary. The patch iterates from the end of "HeaderManager mngr" and breaks the first time when "length" is set. The above fix (in patch.diff) is certainly correct (it's easy to see through code inspection), but I think we can have an even shorter patch (one line, in patchShort.diff): just break as soon as "length" is set, without reversion the loop order. patchShort.diff is correct only if there can be only one "hd.getName()" equal to "HTTPConstants.HEADER_CONTENT_LENGTH" (which I think it's the case), or if it doesn't matter which attribute value "length" gets, as long as the condition HTTPConstants.HEADER_CONTENT_LENGTH.equalsIgnoreCase(hd.getName()) is satisfied.
Created attachment 30502 [details] patchShort
Thanks for patch, applied. Date: Sun Jun 30 13:00:30 2013 New Revision: 1498110 URL: http://svn.apache.org/r1498110 Log: Bug 55161 - Useless processing in SoapSampler.setPostHeaders Bugzilla Id: 55161 Modified: jmeter/trunk/src/protocol/http/org/apache/jmeter/protocol/http/sampler/SoapSampler.java jmeter/trunk/xdocs/changes.xml
This issue has been migrated to GitHub: https://github.com/apache/jmeter/issues/3147