Bug 55161 - Useless processing in SoapSampler.setPostHeaders
Useless processing in SoapSampler.setPostHeaders
Status: RESOLVED FIXED
Product: JMeter
Classification: Unclassified
Component: Main
2.9
All All
: P2 normal (vote)
: ---
Assigned To: JMeter issues mailing list
: PatchAvailable
Depends on:
Blocks:
  Show dependency tree
 
Reported: 2013-06-29 22:05 UTC by Adrian Nistor
Modified: 2013-06-30 13:13 UTC (History)
2 users (show)



Attachments
patch (997 bytes, patch)
2013-06-29 22:05 UTC, Adrian Nistor
Details | Diff
patchShort (750 bytes, patch)
2013-06-29 22:06 UTC, Adrian Nistor
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Adrian Nistor 2013-06-29 22:05:49 UTC
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.
Comment 1 Adrian Nistor 2013-06-29 22:06:07 UTC
Created attachment 30502 [details]
patchShort
Comment 2 Philippe Mouawad 2013-06-30 13:13:41 UTC
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