https://issues.apache.org/bugzilla/show_bug.cgi?id=55161

            Bug ID: 55161
           Summary: Wasted work in SoapSampler.setPostHeaders
           Product: JMeter
           Version: 2.9
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Main
          Assignee: [email protected]
          Reporter: [email protected]

Created attachment 30501
  --> https://issues.apache.org/bugzilla/attachment.cgi?id=30501&action=edit
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.

-- 
You are receiving this mail because:
You are the assignee for the bug.

Reply via email to