<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/">
  <channel rdf:about="http://blog.gmane.org/gmane.comp.java.grinder.devel">
    <title>gmane.comp.java.grinder.devel</title>
    <link>http://blog.gmane.org/gmane.comp.java.grinder.devel</link>
    <description/>
    <syn:updatePeriod>hourly</syn:updatePeriod>
    <syn:updateFrequency>1</syn:updateFrequency>
    <syn:updateBase>1901-01-01T00:00+00:00</syn:updateBase>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.java.grinder.devel/1773"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.java.grinder.devel/1772"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.java.grinder.devel/1771"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.java.grinder.devel/1770"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.java.grinder.devel/1769"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.java.grinder.devel/1768"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.java.grinder.devel/1767"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.java.grinder.devel/1766"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.java.grinder.devel/1765"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.java.grinder.devel/1764"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.java.grinder.devel/1763"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.java.grinder.devel/1762"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.java.grinder.devel/1761"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.java.grinder.devel/1760"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.java.grinder.devel/1759"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.java.grinder.devel/1758"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.java.grinder.devel/1757"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.java.grinder.devel/1756"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.java.grinder.devel/1755"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.java.grinder.devel/1754"/>
      </rdf:Seq>
    </items>
    <image rdf:resource="http://gmane.org/img/gmane-25t.png"/>
    <textinput rdf:resource=""/>
  </channel>
  <image rdf:about="http://gmane.org/img/gmane-25t.png">
    <title>Gmane</title>
    <url>http://gmane.org/img/gmane-25t.png</url>
    <link>http://gmane.org</link>
  </image>
  <item rdf:about="http://comments.gmane.org/gmane.comp.java.grinder.devel/1773">
    <title>[ grinder-Feature Requests-3525230 ] Switchto a standard network library</title>
    <link>http://comments.gmane.org/gmane.comp.java.grinder.devel/1773</link>
    <description>&lt;pre&gt;Feature Requests item #3525230, was opened at 2012-05-09 11:35
Message generated for change (Comment added) made by philipa
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&amp;amp;atid=368598&amp;amp;aid=3525230&amp;amp;group_id=18598

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: Core engine
Group: None
Status: Open
Priority: 5
Private: No
Submitted By: Philip Aston (philipa)
Assigned to: Philip Aston (philipa)
Summary: Switch to a standard network library

Initial Comment:
As much of the communication package as possible should be replaced with a standard network library. This should improve maintainability and provide more flexibility.

Key features required:
 - Client/Server networking over TCP.
 - Support for java serialisation.
 - Server side acceptor framework that manages connections and network events a scalable manner.
 - Reaping of stale connections.
 - Open source license.
 - Actively maintained.

Nice to have (if the base layer doesn't do it, we'll need to maintain the current implementation):
 - Ability to use a pair of InputStream/OutputStream as a transport.
 - Addressable connections; a server can identify client connections by some meta data and target messages to specific clients.

Nice to have:
 - Options for payload marshalling.
 - Monitoring.

I'm going to look hard at Apache MINA to start with.


----------------------------------------------------------------------

Date: 2012-05-13 09:36

Message:
Feature #3526344 should be done first.

----------------------------------------------------------------------

Comment By: Philip Aston (philipa)
Date: 2012-05-13 09:35

Message:
Also need to support fan-out. (Why doesn't the SF tracker let me edit the
"details" - sigh).


----------------------------------------------------------------------

Comment By: Philip Aston (philipa)
Date: 2012-05-13 09:32

Message:
Netty 3 looks cleaner than MINA.

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&amp;amp;atid=368598&amp;amp;aid=3525230&amp;amp;group_id=18598

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
&lt;/pre&gt;</description>
    <dc:creator>SourceForge.net</dc:creator>
    <dc:date>2012-05-13T16:36:11</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.java.grinder.devel/1772">
    <title>[ grinder-Feature Requests-3525230 ] Switchto a standard network library</title>
    <link>http://comments.gmane.org/gmane.comp.java.grinder.devel/1772</link>
    <description>&lt;pre&gt;Feature Requests item #3525230, was opened at 2012-05-09 11:35
Message generated for change (Comment added) made by philipa
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&amp;amp;atid=368598&amp;amp;aid=3525230&amp;amp;group_id=18598

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: Core engine
Group: None
Status: Open
Priority: 5
Private: No
Submitted By: Philip Aston (philipa)
Assigned to: Philip Aston (philipa)
Summary: Switch to a standard network library

Initial Comment:
As much of the communication package as possible should be replaced with a standard network library. This should improve maintainability and provide more flexibility.

Key features required:
 - Client/Server networking over TCP.
 - Support for java serialisation.
 - Server side acceptor framework that manages connections and network events a scalable manner.
 - Reaping of stale connections.
 - Open source license.
 - Actively maintained.

Nice to have (if the base layer doesn't do it, we'll need to maintain the current implementation):
 - Ability to use a pair of InputStream/OutputStream as a transport.
 - Addressable connections; a server can identify client connections by some meta data and target messages to specific clients.

Nice to have:
 - Options for payload marshalling.
 - Monitoring.

I'm going to look hard at Apache MINA to start with.


----------------------------------------------------------------------

Date: 2012-05-13 09:35

Message:
Also need to support fan-out. (Why doesn't the SF tracker let me edit the
"details" - sigh).


----------------------------------------------------------------------

Comment By: Philip Aston (philipa)
Date: 2012-05-13 09:32

Message:
Netty 3 looks cleaner than MINA.

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&amp;amp;atid=368598&amp;amp;aid=3525230&amp;amp;group_id=18598

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
&lt;/pre&gt;</description>
    <dc:creator>SourceForge.net</dc:creator>
    <dc:date>2012-05-13T16:35:54</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.java.grinder.devel/1771">
    <title>[ grinder-Feature Requests-3523611 ]CumulativeStatistics through Console Client API</title>
    <link>http://comments.gmane.org/gmane.comp.java.grinder.devel/1771</link>
    <description>&lt;pre&gt;Feature Requests item #3523611, was opened at 2012-05-04 13:46
Message generated for change (Comment added) made by philipa
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&amp;amp;atid=368598&amp;amp;aid=3523611&amp;amp;group_id=18598

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: Console
Group: None
Status: Open
Priority: 5
Private: No
Submitted By: https://me.yahoo.com/a/epX1.5Ny ()
Assigned to: Nobody/Anonymous (nobody)
Summary: CumulativeStatistics through Console Client API 

Initial Comment:
Current Console API supporting some of the basic functions like START agents, STOP agents, RESET agents.   Exposing CumulativeStatistics through Console API is very much useful when we run grinder in headless mode.  We can check the statistics  through some web interface. 

----------------------------------------------------------------------

Date: 2012-05-13 09:35

Message:
Web service - good idea. See #3526344.

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&amp;amp;atid=368598&amp;amp;aid=3523611&amp;amp;group_id=18598

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
&lt;/pre&gt;</description>
    <dc:creator>SourceForge.net</dc:creator>
    <dc:date>2012-05-13T16:35:05</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.java.grinder.devel/1770">
    <title>[ grinder-Feature Requests-3526344 ] Replaceconsole client API with RESTful web service</title>
    <link>http://comments.gmane.org/gmane.comp.java.grinder.devel/1770</link>
    <description>&lt;pre&gt;Feature Requests item #3526344, was opened at 2012-05-13 09:32
Message generated for change (Comment added) made by philipa
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&amp;amp;atid=368598&amp;amp;aid=3526344&amp;amp;group_id=18598

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: Console
Group: None
Status: Open
Priority: 7
Private: No
Submitted By: Philip Aston (philipa)
Assigned to: Philip Aston (philipa)
Summary: Replace console client API with RESTful web service

Initial Comment:
The functionality of the console client API would be better as a REST web service.

There's no reason for it to be stateful, and there's a world of REST-aware clients that could do useful things with it.

Given the half-baked state of the client API, I plan to replace it completely. This will also allow the communication layer to be simplified (e.g. remove then "keep alive" stuff I added recently for bug #3521073; and the BlockingSender complexity), pathing the way for FR #3525230.

JSON would be a more sensible way to expose data to clients than building an object representation. This would help feature #3523611.

----------------------------------------------------------------------

Date: 2012-05-13 09:34

Message:
Opens up the interesting prospect of The Grinder being able to load test
itself. Force-feeding your own dog food?

----------------------------------------------------------------------

Comment By: Philip Aston (philipa)
Date: 2012-05-13 09:33

Message:
The console should natively host the service, with or without  -headless.

Probably no performance reason to make it optional, but some users might
care about security. The port will need to be configurable, so there might
need to be an off switch too.

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&amp;amp;atid=368598&amp;amp;aid=3526344&amp;amp;group_id=18598

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
&lt;/pre&gt;</description>
    <dc:creator>SourceForge.net</dc:creator>
    <dc:date>2012-05-13T16:34:29</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.java.grinder.devel/1769">
    <title>[ grinder-Feature Requests-3526344 ] Replaceconsole client API with RESTful web service</title>
    <link>http://comments.gmane.org/gmane.comp.java.grinder.devel/1769</link>
    <description>&lt;pre&gt;Feature Requests item #3526344, was opened at 2012-05-13 09:32
Message generated for change (Comment added) made by philipa
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&amp;amp;atid=368598&amp;amp;aid=3526344&amp;amp;group_id=18598

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: Console
Group: None
Status: Open
Priority: 7
Private: No
Submitted By: Philip Aston (philipa)
Assigned to: Philip Aston (philipa)
Summary: Replace console client API with RESTful web service

Initial Comment:
The functionality of the console client API would be better as a REST web service.

There's no reason for it to be stateful, and there's a world of REST-aware clients that could do useful things with it.

Given the half-baked state of the client API, I plan to replace it completely. This will also allow the communication layer to be simplified (e.g. remove then "keep alive" stuff I added recently for bug #3521073; and the BlockingSender complexity), pathing the way for FR #3525230.

JSON would be a more sensible way to expose data to clients than building an object representation. This would help feature #3523611.

----------------------------------------------------------------------

Date: 2012-05-13 09:33

Message:
The console should natively host the service, with or without  -headless.

Probably no performance reason to make it optional, but some users might
care about security. The port will need to be configurable, so there might
need to be an off switch too.

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&amp;amp;atid=368598&amp;amp;aid=3526344&amp;amp;group_id=18598

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
&lt;/pre&gt;</description>
    <dc:creator>SourceForge.net</dc:creator>
    <dc:date>2012-05-13T16:33:58</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.java.grinder.devel/1768">
    <title>[ grinder-Feature Requests-3526344 ] Replaceconsole client API with RESTful web service</title>
    <link>http://comments.gmane.org/gmane.comp.java.grinder.devel/1768</link>
    <description>&lt;pre&gt;Feature Requests item #3526344, was opened at 2012-05-13 09:32
Message generated for change (Tracker Item Submitted) made by philipa
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&amp;amp;atid=368598&amp;amp;aid=3526344&amp;amp;group_id=18598

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: Console
Group: None
Status: Open
Priority: 7
Private: No
Submitted By: Philip Aston (philipa)
Assigned to: Philip Aston (philipa)
Summary: Replace console client API with RESTful web service

Initial Comment:
The functionality of the console client API would be better as a REST web service.

There's no reason for it to be stateful, and there's a world of REST-aware clients that could do useful things with it.

Given the half-baked state of the client API, I plan to replace it completely. This will also allow the communication layer to be simplified (e.g. remove then "keep alive" stuff I added recently for bug #3521073; and the BlockingSender complexity), pathing the way for FR #3525230.

JSON would be a more sensible way to expose data to clients than building an object representation. This would help feature #3523611.

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&amp;amp;atid=368598&amp;amp;aid=3526344&amp;amp;group_id=18598

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
&lt;/pre&gt;</description>
    <dc:creator>SourceForge.net</dc:creator>
    <dc:date>2012-05-13T16:32:36</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.java.grinder.devel/1767">
    <title>[ grinder-Feature Requests-3525230 ] Switchto a standard network library</title>
    <link>http://comments.gmane.org/gmane.comp.java.grinder.devel/1767</link>
    <description>&lt;pre&gt;Feature Requests item #3525230, was opened at 2012-05-09 11:35
Message generated for change (Comment added) made by philipa
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&amp;amp;atid=368598&amp;amp;aid=3525230&amp;amp;group_id=18598

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: Core engine
Group: None
Status: Open
Priority: 5
Private: No
Submitted By: Philip Aston (philipa)
Assigned to: Philip Aston (philipa)
Summary: Switch to a standard network library

Initial Comment:
As much of the communication package as possible should be replaced with a standard network library. This should improve maintainability and provide more flexibility.

Key features required:
 - Client/Server networking over TCP.
 - Support for java serialisation.
 - Server side acceptor framework that manages connections and network events a scalable manner.
 - Reaping of stale connections.
 - Open source license.
 - Actively maintained.

Nice to have (if the base layer doesn't do it, we'll need to maintain the current implementation):
 - Ability to use a pair of InputStream/OutputStream as a transport.
 - Addressable connections; a server can identify client connections by some meta data and target messages to specific clients.

Nice to have:
 - Options for payload marshalling.
 - Monitoring.

I'm going to look hard at Apache MINA to start with.


----------------------------------------------------------------------

Date: 2012-05-13 09:32

Message:
Netty 3 looks cleaner than MINA.

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&amp;amp;atid=368598&amp;amp;aid=3525230&amp;amp;group_id=18598

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
&lt;/pre&gt;</description>
    <dc:creator>SourceForge.net</dc:creator>
    <dc:date>2012-05-13T16:32:09</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.java.grinder.devel/1766">
    <title>The Grinder 3.9.1: call for testing</title>
    <link>http://comments.gmane.org/gmane.comp.java.grinder.devel/1766</link>
    <description>&lt;pre&gt;I didn't release 3.9, due to bug 351793

Today I pushed The Grinder 3.9.1 to Nexus:

https://oss.sonatype.org/content/repositories/netsfgrinder-322/net/sf/grinder/grinder/3.9.1/grinder-3.9.1-binary.zip


3.9.1 Fixes:

  Fix bug 3517593 - Recording Jython script with 3.9 produced an
  invalid script. Thanks to greghmerrill and John Felten for the beta
  testing and report.

  Fix bug 3525156 - Better exception handling of invalid header arrays
  passed to HTTPRequest. Thanks to Ouray Viney for the report.

  Fix bug 3521073 - CLOSE_WAIT sockets on agent kill. Dead connections
  should now be cleaned up after 30 seconds. Thanks to Tumri for the
  report.


3.9 Fixes:

  Fix bug 3511553 - TCP proxy recorded scripts do not extract headers
  correctly, leaving a syntactically incorrect script.

  Fix bug 3511035 - 3.8 bundles additional, older version of xmlbeans.

  Fix bug 3511536 - Generated Clojure script uses logger API
  incorrectly. Thanks to Chris Bolton for the report. I also disabled
  the "offline debug" macros by default.

  Fix bug 3512095 - proxy-generated XML gives each attribute a new
  namespace. Thanks to Bill Smith for the report.


I'm particularly keen to release the fix for 3511553, which covers the
broken script recording in The Grinder 3.8.

I'd be grateful if a few of you could do some pre-release user testing,
focussing in particular on script recording.

Thanks!

- Phil


------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
&lt;/pre&gt;</description>
    <dc:creator>Philip Aston</dc:creator>
    <dc:date>2012-05-11T16:17:07</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.java.grinder.devel/1765">
    <title>[ grinder-Bugs-3521073 ] CLOSE_WAIT socketson agent kill</title>
    <link>http://comments.gmane.org/gmane.comp.java.grinder.devel/1765</link>
    <description>&lt;pre&gt;Bugs item #3521073, was opened at 2012-04-24 07:17
Message generated for change (Settings changed) made by philipa
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&amp;amp;atid=118598&amp;amp;aid=3521073&amp;amp;group_id=18598

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: Console
Group: None
Priority: 3
Private: No
Submitted By: https://me.yahoo.com/a/epX1.5Ny ()
Assigned to: Philip Aston (philipa)
Summary: CLOSE_WAIT sockets on agent kill

Initial Comment:
grinder console not closing the agent tcp connections when agent got killed. 

steps to reproduce: 
1) Start Console and Agent :  You can see 2 TCP ESTABLISHED  on netstat output 
2) Kill the agent:   ESTABLISHED TCP Connections changes to CLOSE_WAIT.  

 

----------------------------------------------------------------------

Comment By: Philip Aston (philipa)
Date: 2012-05-11 05:10

Message:
Fixed for next release:
http://grinder.git.sourceforge.net/git/gitweb.cgi?p=grinder/grinder;a=commitdiff;h=b342deee9f47f14cca1f99fd2e8fedeadc213293

----------------------------------------------------------------------

Comment By: Philip Aston (philipa)
Date: 2012-05-07 10:06

Message:
This occurs if the agent is killed, rather than being gracefully shutdown
via the console. 

Its not easy to detect this peer gone situation in Java without doing a
blocking read, or sending data to the socket

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&amp;amp;atid=118598&amp;amp;aid=3521073&amp;amp;group_id=18598

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
&lt;/pre&gt;</description>
    <dc:creator>SourceForge.net</dc:creator>
    <dc:date>2012-05-11T12:11:14</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.java.grinder.devel/1764">
    <title>[ grinder-Bugs-3521073 ] CLOSE_WAIT socketson agent kill</title>
    <link>http://comments.gmane.org/gmane.comp.java.grinder.devel/1764</link>
    <description>&lt;pre&gt;Bugs item #3521073, was opened at 2012-04-24 07:17
Message generated for change (Comment added) made by philipa
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&amp;amp;atid=118598&amp;amp;aid=3521073&amp;amp;group_id=18598

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: Console
Group: None
Status: Open
Resolution: None
Priority: 3
Private: No
Submitted By: https://me.yahoo.com/a/epX1.5Ny ()
Assigned to: Philip Aston (philipa)
Summary: CLOSE_WAIT sockets on agent kill

Initial Comment:
grinder console not closing the agent tcp connections when agent got killed. 

steps to reproduce: 
1) Start Console and Agent :  You can see 2 TCP ESTABLISHED  on netstat output 
2) Kill the agent:   ESTABLISHED TCP Connections changes to CLOSE_WAIT.  

 

----------------------------------------------------------------------

Date: 2012-05-11 05:10

Message:
Fixed for next release:
http://grinder.git.sourceforge.net/git/gitweb.cgi?p=grinder/grinder;a=commitdiff;h=b342deee9f47f14cca1f99fd2e8fedeadc213293

----------------------------------------------------------------------

Comment By: Philip Aston (philipa)
Date: 2012-05-07 10:06

Message:
This occurs if the agent is killed, rather than being gracefully shutdown
via the console. 

Its not easy to detect this peer gone situation in Java without doing a
blocking read, or sending data to the socket

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&amp;amp;atid=118598&amp;amp;aid=3521073&amp;amp;group_id=18598

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
&lt;/pre&gt;</description>
    <dc:creator>SourceForge.net</dc:creator>
    <dc:date>2012-05-11T12:10:59</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.java.grinder.devel/1763">
    <title>[ grinder-Bugs-3524364 ] TCPProxy 3.8 Createsincorrect code for large POSTs</title>
    <link>http://comments.gmane.org/gmane.comp.java.grinder.devel/1763</link>
    <description>&lt;pre&gt;Bugs item #3524364, was opened at 2012-05-07 08:05
Message generated for change (Settings changed) made by philipa
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&amp;amp;atid=118598&amp;amp;aid=3524364&amp;amp;group_id=18598

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: TCPProxy
Group: None
Priority: 5
Private: No
Submitted By: Ouray Viney (oviney)
Summary: TCPProxy 3.8 Creates incorrect code for large POSTs

Initial Comment:
Recorded a test with 3.8 and when I tried to execute the script
without making any changes, I got the following error (see snippet
below).

2012-02-15 17:28:32,493 ERROR v3500-vineyo-0 thread-0 [ run-0 ]:
Aborted run: Jython exception: &amp;lt;type 'exceptions.TypeError'&amp;gt;: POST():
4th arg can't be coerced to boolean [calling TestRunner]
net.grinder.scriptengine.jython.JythonScriptExecutionException: &amp;lt;type
'exceptions.TypeError'&amp;gt;: POST(): 4th arg can't be coerced to boolean
       result = request2001.POST('/some/path/to/something/create' +
       File "C:\workspace\ART\recordings\16058.py", line 480, in page20
       self.page20()     # POST create (requests 2001-2046)
       File "C:\workspace\ART\recordings\16058.py", line 680, in __call__

Here is the generated code:

def page20(self):
   """POST create (requests 2001-2046)."""
   result=None
   self.token_autoScroll = \
     '0,0'
   self.token_javaxfacesViewState = \
     'v1Dxx9hSieZwMVPzZZHAPSkIfrSZM1jbO4mNTTN2U0GpxoAFjzFhwBfq8TSsy8Fpg/TQVOb0+Oiq+zJDdF6NVN/7aOKaI58tV2Aq1ShX7tQ='

   # Expecting 302 'Moved Temporarily'
   result = request2001.POST('/something/over/here/create' +
     '?execution=' +
     self.token_execution,
     ( NVPair('CreateTicket:postalCode', 'K2K 3N5'),
       NVPair('autoScroll', self.token_autoScroll),
       NVPair('CreateTicket:MOBO', ''),
       NVPair('CreateTicket:movingDate', '2012/02/14'),
       NVPair('CreateTicket:continue.x', '48'),
       NVPair('CreateTicket:continue.y', '10'),
       NVPair('CreateTicket_SUBMIT', '1'),
       NVPair('javax.faces.ViewState', self.token_javaxfacesViewState), ),
     ( NVPair('CreateTicket:postalCode', 'K2K 3N5'),
       NVPair('autoScroll', self.token_autoScroll),
       NVPair('CreateTicket:MOBO', ''),
       NVPair('CreateTicket:movingDate', '2012/02/14'),
       NVPair('CreateTicket:continue.x', '48'),
       NVPair('CreateTicket:continue.y', '10'),
       NVPair('CreateTicket_SUBMIT', '1'),
       NVPair('javax.faces.ViewState', self.token_javaxfacesViewState), ),
     ( NVPair('Content-Type', 'application/x-www-form-urlencoded'),
       httpUtilities.basicAuthorizationHeader('cpouser', 'CPOu53r'), ))
   self.token_execution = \
     httpUtilities.valueFromLocationURI('execution') # 'e2s2'

   request2002.GET('/something/over/here/create' +
     '?execution=' +
     self.token_execution, None,
     ( httpUtilities.basicAuthorizationHeader('cpouser', 'CPOu53r'), ))
   # 2 different values for token_mode found in response; the first matched
   # the last known value of token_mode - don't update the variable.

   return result

Here is the same method recorded with Grinder 3.4:

def page16(self):
   """POST create (requests 1601-1602)."""
   result=None
   self.token_javaxfacesViewState = \
     'v1Dxx9hSieZwMVPzZZHAPSkIfrSZM1jbO4mNTTN2U0GpxoAFjzFhwEssO/Z0p/uzbvKU911yLbSq+zJDdF6NVCJ26sWnV8yXnx+/NyzHnuM072oC245y6Q=='

   # Expecting 302 'Moved Temporarily'
   result = request1601.POST('/something/over/here/create' +
     '?execution=' +
     self.token_execution,
     ( NVPair('addressAndContact:userAddress:streetNumberSuffix', ''),
       NVPair('addressAndContact:userAddress:unit', ''),
       NVPair('addressAndContact:userAddress:postalCode', 'K1A 0B1'),
       NVPair('addressAndContact:misdevContact:businessLegalName',
'Functional Tester'),
       NVPair('addressAndContact:misdevContact:operatingName', ''),
       NVPair('addressAndContact:misdevContact:firstName', 'Functional'),
       NVPair('addressAndContact:misdevContact:lastName', 'Tester'),
       NVPair('addressAndContact:misdevContact:emailAddress',
'ouray-BbpMSQBCDjY&amp;lt; at &amp;gt;public.gmane.org'),
       NVPair('addressAndContact:misdevContact:phoneNumber', '6132345678'),
       NVPair('addressAndContact:misdevContact:extensionN', ''),
       NVPair('addressAndContact:misdevContact:languagePref', 'E'),
       NVPair('addressAndContact:continue.x', '25'),
       NVPair('addressAndContact:continue.y', '11'),
       NVPair('autoScroll', self.token_autoScroll),
       NVPair('addressAndContact_SUBMIT', '1'),
       NVPair('javax.faces.ViewState', self.token_javaxfacesViewState), ),
     ( NVPair('Content-Type', 'application/x-www-form-urlencoded'),
       httpUtilities.basicAuthorizationHeader('cpouser', 'CPOu53r'), ))
   self.token_execution = \
     httpUtilities.valueFromLocationURI('execution') # 'e2s3'

   request1602.GET('/something/over/here/create' +
     '?execution=' +
     self.token_execution, None,
     ( httpUtilities.basicAuthorizationHeader('cpouser', 'CPOu53r'), ))
   # 2 different values for token_mode found in response; the first matched
   # the last known value of token_mode - don't update the variable.

   return result

reviewing the API docs for the POST() method, there is no instance
where the POST takes three NVPAIRs.

Here is the method signature:

 HTTPResponse   POST(java.lang.String uri, NVPair[] formData, NVPair[]
headers, boolean isMultipart)
         Makes an HTTP POST request.

In conclusion, I adjusted the dodgy POSTs (that had 3 NVPAIR definitions) re-ran the script and had no issues.


----------------------------------------------------------------------

Comment By: Philip Aston (philipa)
Date: 2012-05-11 01:06

Message:
Yes - dup of 3511553.

----------------------------------------------------------------------

Comment By: Ouray Viney (oviney)
Date: 2012-05-10 22:38

Message:
This has been fixed in versions &amp;gt; 3.8.  I will be happy to re-test this
with an official build (if required).

----------------------------------------------------------------------

Comment By: Ouray Viney (oviney)
Date: 2012-05-09 10:43

Message:
I checked out a copy from git and built locally.  In this version, the
problem is no longer present.  I will be happy to test a official build
when one is ready.

----------------------------------------------------------------------

Comment By: Ouray Viney (oviney)
Date: 2012-05-07 09:11

Message:
Upon further investigation of this issue, it appears that the issue is that
TCPProxy incorrectly duplicates NVPairs in the POST.



----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&amp;amp;atid=118598&amp;amp;aid=3524364&amp;amp;group_id=18598

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
&lt;/pre&gt;</description>
    <dc:creator>SourceForge.net</dc:creator>
    <dc:date>2012-05-11T08:07:16</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.java.grinder.devel/1762">
    <title>[ grinder-Bugs-3524364 ] TCPProxy 3.8 Createsincorrect code for large POSTs</title>
    <link>http://comments.gmane.org/gmane.comp.java.grinder.devel/1762</link>
    <description>&lt;pre&gt;Bugs item #3524364, was opened at 2012-05-07 08:05
Message generated for change (Comment added) made by philipa
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&amp;amp;atid=118598&amp;amp;aid=3524364&amp;amp;group_id=18598

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: TCPProxy
Group: None
Status: Open
Resolution: Fixed
Priority: 5
Private: No
Submitted By: Ouray Viney (oviney)
Assigned to: Nobody/Anonymous (nobody)
Summary: TCPProxy 3.8 Creates incorrect code for large POSTs

Initial Comment:
Recorded a test with 3.8 and when I tried to execute the script
without making any changes, I got the following error (see snippet
below).

2012-02-15 17:28:32,493 ERROR v3500-vineyo-0 thread-0 [ run-0 ]:
Aborted run: Jython exception: &amp;lt;type 'exceptions.TypeError'&amp;gt;: POST():
4th arg can't be coerced to boolean [calling TestRunner]
net.grinder.scriptengine.jython.JythonScriptExecutionException: &amp;lt;type
'exceptions.TypeError'&amp;gt;: POST(): 4th arg can't be coerced to boolean
       result = request2001.POST('/some/path/to/something/create' +
       File "C:\workspace\ART\recordings\16058.py", line 480, in page20
       self.page20()     # POST create (requests 2001-2046)
       File "C:\workspace\ART\recordings\16058.py", line 680, in __call__

Here is the generated code:

def page20(self):
   """POST create (requests 2001-2046)."""
   result=None
   self.token_autoScroll = \
     '0,0'
   self.token_javaxfacesViewState = \
     'v1Dxx9hSieZwMVPzZZHAPSkIfrSZM1jbO4mNTTN2U0GpxoAFjzFhwBfq8TSsy8Fpg/TQVOb0+Oiq+zJDdF6NVN/7aOKaI58tV2Aq1ShX7tQ='

   # Expecting 302 'Moved Temporarily'
   result = request2001.POST('/something/over/here/create' +
     '?execution=' +
     self.token_execution,
     ( NVPair('CreateTicket:postalCode', 'K2K 3N5'),
       NVPair('autoScroll', self.token_autoScroll),
       NVPair('CreateTicket:MOBO', ''),
       NVPair('CreateTicket:movingDate', '2012/02/14'),
       NVPair('CreateTicket:continue.x', '48'),
       NVPair('CreateTicket:continue.y', '10'),
       NVPair('CreateTicket_SUBMIT', '1'),
       NVPair('javax.faces.ViewState', self.token_javaxfacesViewState), ),
     ( NVPair('CreateTicket:postalCode', 'K2K 3N5'),
       NVPair('autoScroll', self.token_autoScroll),
       NVPair('CreateTicket:MOBO', ''),
       NVPair('CreateTicket:movingDate', '2012/02/14'),
       NVPair('CreateTicket:continue.x', '48'),
       NVPair('CreateTicket:continue.y', '10'),
       NVPair('CreateTicket_SUBMIT', '1'),
       NVPair('javax.faces.ViewState', self.token_javaxfacesViewState), ),
     ( NVPair('Content-Type', 'application/x-www-form-urlencoded'),
       httpUtilities.basicAuthorizationHeader('cpouser', 'CPOu53r'), ))
   self.token_execution = \
     httpUtilities.valueFromLocationURI('execution') # 'e2s2'

   request2002.GET('/something/over/here/create' +
     '?execution=' +
     self.token_execution, None,
     ( httpUtilities.basicAuthorizationHeader('cpouser', 'CPOu53r'), ))
   # 2 different values for token_mode found in response; the first matched
   # the last known value of token_mode - don't update the variable.

   return result

Here is the same method recorded with Grinder 3.4:

def page16(self):
   """POST create (requests 1601-1602)."""
   result=None
   self.token_javaxfacesViewState = \
     'v1Dxx9hSieZwMVPzZZHAPSkIfrSZM1jbO4mNTTN2U0GpxoAFjzFhwEssO/Z0p/uzbvKU911yLbSq+zJDdF6NVCJ26sWnV8yXnx+/NyzHnuM072oC245y6Q=='

   # Expecting 302 'Moved Temporarily'
   result = request1601.POST('/something/over/here/create' +
     '?execution=' +
     self.token_execution,
     ( NVPair('addressAndContact:userAddress:streetNumberSuffix', ''),
       NVPair('addressAndContact:userAddress:unit', ''),
       NVPair('addressAndContact:userAddress:postalCode', 'K1A 0B1'),
       NVPair('addressAndContact:misdevContact:businessLegalName',
'Functional Tester'),
       NVPair('addressAndContact:misdevContact:operatingName', ''),
       NVPair('addressAndContact:misdevContact:firstName', 'Functional'),
       NVPair('addressAndContact:misdevContact:lastName', 'Tester'),
       NVPair('addressAndContact:misdevContact:emailAddress',
'ouray-BbpMSQBCDjY&amp;lt; at &amp;gt;public.gmane.org'),
       NVPair('addressAndContact:misdevContact:phoneNumber', '6132345678'),
       NVPair('addressAndContact:misdevContact:extensionN', ''),
       NVPair('addressAndContact:misdevContact:languagePref', 'E'),
       NVPair('addressAndContact:continue.x', '25'),
       NVPair('addressAndContact:continue.y', '11'),
       NVPair('autoScroll', self.token_autoScroll),
       NVPair('addressAndContact_SUBMIT', '1'),
       NVPair('javax.faces.ViewState', self.token_javaxfacesViewState), ),
     ( NVPair('Content-Type', 'application/x-www-form-urlencoded'),
       httpUtilities.basicAuthorizationHeader('cpouser', 'CPOu53r'), ))
   self.token_execution = \
     httpUtilities.valueFromLocationURI('execution') # 'e2s3'

   request1602.GET('/something/over/here/create' +
     '?execution=' +
     self.token_execution, None,
     ( httpUtilities.basicAuthorizationHeader('cpouser', 'CPOu53r'), ))
   # 2 different values for token_mode found in response; the first matched
   # the last known value of token_mode - don't update the variable.

   return result

reviewing the API docs for the POST() method, there is no instance
where the POST takes three NVPAIRs.

Here is the method signature:

 HTTPResponse   POST(java.lang.String uri, NVPair[] formData, NVPair[]
headers, boolean isMultipart)
         Makes an HTTP POST request.

In conclusion, I adjusted the dodgy POSTs (that had 3 NVPAIR definitions) re-ran the script and had no issues.


----------------------------------------------------------------------

Date: 2012-05-11 01:06

Message:
Yes - dup of 3511553.

----------------------------------------------------------------------

Comment By: Ouray Viney (oviney)
Date: 2012-05-10 22:38

Message:
This has been fixed in versions &amp;gt; 3.8.  I will be happy to re-test this
with an official build (if required).

----------------------------------------------------------------------

Comment By: Ouray Viney (oviney)
Date: 2012-05-09 10:43

Message:
I checked out a copy from git and built locally.  In this version, the
problem is no longer present.  I will be happy to test a official build
when one is ready.

----------------------------------------------------------------------

Comment By: Ouray Viney (oviney)
Date: 2012-05-07 09:11

Message:
Upon further investigation of this issue, it appears that the issue is that
TCPProxy incorrectly duplicates NVPairs in the POST.



----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&amp;amp;atid=118598&amp;amp;aid=3524364&amp;amp;group_id=18598

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
&lt;/pre&gt;</description>
    <dc:creator>SourceForge.net</dc:creator>
    <dc:date>2012-05-11T08:06:53</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.java.grinder.devel/1761">
    <title>[ grinder-Bugs-3525156 ] Null pointerexeception when posting form data</title>
    <link>http://comments.gmane.org/gmane.comp.java.grinder.devel/1761</link>
    <description>&lt;pre&gt;Bugs item #3525156, was opened at 2012-05-09 09:17
Message generated for change (Comment added) made by philipa
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&amp;amp;atid=118598&amp;amp;aid=3525156&amp;amp;group_id=18598

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: HTTP Plugin
Group: None
Priority: 3
Private: No
Submitted By: Ouray Viney (oviney)
Assigned to: Philip Aston (philipa)
Summary: Null pointer exeception when posting form data

Initial Comment:
Upgraded my Grinder 3.4 to 3.8 and got the following exception:


2012-05-09 11:22:56,663 ERROR lingrndctl-0 thread-15 [ run-0 ]: Aborted run: Java exception calling TestRunner
net.grinder.scriptengine.jython.JythonScriptExecutionException: Java exception calling TestRunner
        result = getCommRateRequest.POST(self.URI, self.getCommRateXMLPayload,
        File "/opt/home/testusr1/est/bdt1.1/bin/./lingrndctl-file-store/current/ca/innovapost/test/scenarios/tpoGetCommRate.py", line 108, in getCommRate
        getCommRateResponse = self.getCommRate()
        File "/opt/home/testusr1/est/bdt1.1/bin/./lingrndctl-file-store/current/ca/innovapost/test/scenarios/tpoGetCommRate.py", line 124, in __call__
        self.testRunner()
        File "/opt/home/testusr1/est/bdt1.1/bin/./lingrndctl-file-store/current/ca/innovapost/test/resources/../scenarios/tpoPerformanceScenario1x.py", line 111, in __call__
java.lang.NullPointerException: null
        at net.grinder.plugin.http.HTTPRequest.mergeArrays(HTTPRequest.java:184) ~[grinder-http-3.8.jar:na]
        at net.grinder.plugin.http.HTTPRequest.mergeHeaders(HTTPRequest.java:197) ~[grinder-http-3.8.jar:na]
        at net.grinder.plugin.http.HTTPRequest.access$000(HTTPRequest.java:99) ~[grinder-http-3.8.jar:na]
        at net.grinder.plugin.http.HTTPRequest$AbstractRequest.&amp;lt;init&amp;gt;(HTTPRequest.java:1181) ~[grinder-http-3.8.jar:na]
        at net.grinder.plugin.http.HTTPRequest$8.&amp;lt;init&amp;gt;(HTTPRequest.java:902) ~[grinder-http-3.8.jar:na]
        at net.grinder.plugin.http.HTTPRequest.POST(HTTPRequest.java:902) ~[grinder-http-3.8.jar:na]
        at sun.reflect.GeneratedMethodAccessor47.invoke(Unknown Source) ~[na:na]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[na:1.6.0_13]
        at java.lang.reflect.Method.invoke(Unknown Source) ~[na:1.6.0_13]
        at org.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java:186) ~[jython.jar:na]
        at org.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java:204) ~[jython.jar:na]
        at org.python.core.PyObject.__call__(PyObject.java:441) ~[jython.jar:na]
        at org.python.core.PyObject.__call__(PyObject.java:447) ~[jython.jar:na]
        at org.python.core.PyMethod.__call__(PyMethod.java:154) ~[jython.jar:na]

This problem was fixed in the past - here is the original post http://permalink.gmane.org/gmane.comp.java.grinder.user/8086

----------------------------------------------------------------------

Date: 2012-05-10 23:31

Message:
Fixed for next release:
http://grinder.git.sourceforge.net/git/gitweb.cgi?p=grinder/grinder;a=commitdiff;h=6241641b6233956699841ae578515f5115007119

----------------------------------------------------------------------

Comment By: Ouray Viney (oviney)
Date: 2012-05-10 22:11

Message:
Yes, I agree with your suggestion re: throwing an NPE with more specific
details.

----------------------------------------------------------------------

Comment By: Philip Aston (philipa)
Date: 2012-05-10 08:11

Message:
It could be a regression caused by the 3.7 change.

Anyway, yes, I agree the grinder could handle it better. I don't think it
should allow the (None, blah), because there's nothing to be done with it.
Would throwing a NullPointerException with a more specific message, e.g.
"NVPair name is null" be more useful.

----------------------------------------------------------------------

Comment By: Ouray Viney (oviney)
Date: 2012-05-10 08:06

Message:
Hi Again:

Phil, I think you were right, *AGAIN*!

I reviewed the source code for the said script.  I noticed the following
line:

        # Send the request over the wire        
        result = getCommRateRequest.POST(self.URI,
self.getCommRateXMLPayload,
                (None,))

I adjusted that to:

        # Send the request over the wire        
        result = getCommRateRequest.POST(self.URI,
self.getCommRateXMLPayload)

Retried with the Grinder 3.8 jars and this time had no issues.  So, if this
is a script error, then:

1) Grinder 3.4 was swallowing the NPE
2) Grinder 3.8 was no longer catching the NPE

I supposed it would be good if Grinder 3.8 gave a more user friendly
exception message =).

Errors like these are easy to  accidentally introduce as the "grinderstone"
eclipse plugin doesn't check these types of programmatic errors.  I am open
to any suggestions on how to improve checking of these types of errors.

Thanks,

Ouray

----------------------------------------------------------------------

Comment By: Ouray Viney (oviney)
Date: 2012-05-10 07:57

Message:
Hi:

Interesting.  This same script runs fine in Grinder 3.4 with the said
patch.  That is why I thought it *might* be a regression bug.

I just ran this with Grinder 3.4 (with the patch included in the class
path).

Here is the POST:


POST https://foobart.com:5000/webservice/RateShoppingService HTTP/1.1
Host: foobart.com:5000
Connection: Keep-Alive, TE
TE: trailers
User-Agent: Jakarta Commons-HttpClient/3.1
Accept-Language: en-CA
Accept-Encoding: gzip,deflate
Content-Type: text/xml;charset=UTF-8
Content-length: 2175


&amp;lt;soapenv:Envelope
xmlns:rat="http://foobart.com/ebusiness/RateShoppingServiceWrapper"
xmlns:rat1="http://foobart.com/ebusiness/RateShoppingService"
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"&amp;gt;
&amp;lt;soapenv:Header&amp;gt;
&amp;lt;wsse:Security soapenv:mustUnderstand="1"
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"&amp;gt;
&amp;lt;wsse:UsernameToken wsu:Id="UsernameToken-1"
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"&amp;gt;
&amp;lt;wsse:Username&amp;gt;FOOBART&amp;lt;/wsse:Username&amp;gt;
&amp;lt;wsse:Password
Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText"&amp;gt;FOOBART&amp;lt;/wsse:Password&amp;gt;
&amp;lt;wsse:Nonce
EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary"&amp;gt;ABCY77864&amp;lt;/wsse:Nonce&amp;gt;
&amp;lt;wsu:Created&amp;gt;2012-01-25T18:25:53.729Z&amp;lt;/wsu:Created&amp;gt;
&amp;lt;/wsse:UsernameToken&amp;gt;
&amp;lt;/wsse:Security&amp;gt;
&amp;lt;/soapenv:Header&amp;gt;
&amp;lt;soapenv:Body&amp;gt;
&amp;lt;rat:getCommRate&amp;gt;
&amp;lt;rat:request&amp;gt;
&amp;lt;!--1 or more repetitions:--&amp;gt;
&amp;lt;rat1:MailingScenario&amp;gt;
&amp;lt;rat1:ChannelTypeCode&amp;gt;COMMERCIAL&amp;lt;/rat1:ChannelTypeCode&amp;gt;
&amp;lt;rat1:AutomationDiscountCode&amp;gt;EORDER2&amp;lt;/rat1:AutomationDiscountCode&amp;gt;
&amp;lt;rat1:MailingDate&amp;gt;2011-10-10&amp;lt;/rat1:MailingDate&amp;gt;
&amp;lt;rat1:Quantity&amp;gt;10000&amp;lt;/rat1:Quantity&amp;gt;
&amp;lt;rat1:Option Code="TRANSP"/&amp;gt;
&amp;lt;rat1:MailItemDetails&amp;gt;
&amp;lt;rat1:Weight&amp;gt;23&amp;lt;/rat1:Weight&amp;gt;
&amp;lt;!--Optional:--&amp;gt;
&amp;lt;rat1:DimensionalCharacteristics&amp;gt;
&amp;lt;!--You have a CHOICE of the next 2 items at this level--&amp;gt;
&amp;lt;rat1:SizeClassCode&amp;gt;OS1&amp;lt;/rat1:SizeClassCode&amp;gt;
&amp;lt;/rat1:DimensionalCharacteristics&amp;gt;
&amp;lt;/rat1:MailItemDetails&amp;gt;
&amp;lt;rat1:ProductServiceID&amp;gt;DOM.UA&amp;lt;/rat1:ProductServiceID&amp;gt;
&amp;lt;rat1:ProvinceOfDeposit&amp;gt;ON&amp;lt;/rat1:ProvinceOfDeposit&amp;gt;
&amp;lt;!--Optional:--&amp;gt;
&amp;lt;rat1:PrepTypeCode&amp;gt;LC&amp;lt;/rat1:PrepTypeCode&amp;gt;
&amp;lt;/rat1:MailingScenario&amp;gt;
&amp;lt;/rat:request&amp;gt;
&amp;lt;/rat:getCommRate&amp;gt;
&amp;lt;/soapenv:Body&amp;gt;
&amp;lt;/soapenv:Envelope&amp;gt;


----------------------------------------------------------------------

Comment By: Philip Aston (philipa)
Date: 2012-05-10 07:33

Message:
This has similar symptoms to the previous bug (3006631) that was fixed in
3.7, but is different, rather than a regression from 3.7. The previous bug
was specific to multipart handling. I can see from your stack trace that
you are not posting multipart data, so I've corrected the bug subject.

Can you add the POST that caused this? As far as I can see, the header
array your supplying is invalid; one of the NVPairs has a null name.

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&amp;amp;atid=118598&amp;amp;aid=3525156&amp;amp;group_id=18598

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
&lt;/pre&gt;</description>
    <dc:creator>SourceForge.net</dc:creator>
    <dc:date>2012-05-11T06:31:19</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.java.grinder.devel/1760">
    <title>[ grinder-Bugs-3524364 ] TCPProxy 3.8 Createsincorrect code for large POSTs</title>
    <link>http://comments.gmane.org/gmane.comp.java.grinder.devel/1760</link>
    <description>&lt;pre&gt;Bugs item #3524364, was opened at 2012-05-07 08:05
Message generated for change (Comment added) made by oviney
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&amp;amp;atid=118598&amp;amp;aid=3524364&amp;amp;group_id=18598

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: TCPProxy
Group: None
Status: Open
Priority: 5
Private: No
Submitted By: Ouray Viney (oviney)
Assigned to: Nobody/Anonymous (nobody)
Summary: TCPProxy 3.8 Creates incorrect code for large POSTs

Initial Comment:
Recorded a test with 3.8 and when I tried to execute the script
without making any changes, I got the following error (see snippet
below).

2012-02-15 17:28:32,493 ERROR v3500-vineyo-0 thread-0 [ run-0 ]:
Aborted run: Jython exception: &amp;lt;type 'exceptions.TypeError'&amp;gt;: POST():
4th arg can't be coerced to boolean [calling TestRunner]
net.grinder.scriptengine.jython.JythonScriptExecutionException: &amp;lt;type
'exceptions.TypeError'&amp;gt;: POST(): 4th arg can't be coerced to boolean
       result = request2001.POST('/some/path/to/something/create' +
       File "C:\workspace\ART\recordings\16058.py", line 480, in page20
       self.page20()     # POST create (requests 2001-2046)
       File "C:\workspace\ART\recordings\16058.py", line 680, in __call__

Here is the generated code:

def page20(self):
   """POST create (requests 2001-2046)."""
   result=None
   self.token_autoScroll = \
     '0,0'
   self.token_javaxfacesViewState = \
     'v1Dxx9hSieZwMVPzZZHAPSkIfrSZM1jbO4mNTTN2U0GpxoAFjzFhwBfq8TSsy8Fpg/TQVOb0+Oiq+zJDdF6NVN/7aOKaI58tV2Aq1ShX7tQ='

   # Expecting 302 'Moved Temporarily'
   result = request2001.POST('/something/over/here/create' +
     '?execution=' +
     self.token_execution,
     ( NVPair('CreateTicket:postalCode', 'K2K 3N5'),
       NVPair('autoScroll', self.token_autoScroll),
       NVPair('CreateTicket:MOBO', ''),
       NVPair('CreateTicket:movingDate', '2012/02/14'),
       NVPair('CreateTicket:continue.x', '48'),
       NVPair('CreateTicket:continue.y', '10'),
       NVPair('CreateTicket_SUBMIT', '1'),
       NVPair('javax.faces.ViewState', self.token_javaxfacesViewState), ),
     ( NVPair('CreateTicket:postalCode', 'K2K 3N5'),
       NVPair('autoScroll', self.token_autoScroll),
       NVPair('CreateTicket:MOBO', ''),
       NVPair('CreateTicket:movingDate', '2012/02/14'),
       NVPair('CreateTicket:continue.x', '48'),
       NVPair('CreateTicket:continue.y', '10'),
       NVPair('CreateTicket_SUBMIT', '1'),
       NVPair('javax.faces.ViewState', self.token_javaxfacesViewState), ),
     ( NVPair('Content-Type', 'application/x-www-form-urlencoded'),
       httpUtilities.basicAuthorizationHeader('cpouser', 'CPOu53r'), ))
   self.token_execution = \
     httpUtilities.valueFromLocationURI('execution') # 'e2s2'

   request2002.GET('/something/over/here/create' +
     '?execution=' +
     self.token_execution, None,
     ( httpUtilities.basicAuthorizationHeader('cpouser', 'CPOu53r'), ))
   # 2 different values for token_mode found in response; the first matched
   # the last known value of token_mode - don't update the variable.

   return result

Here is the same method recorded with Grinder 3.4:

def page16(self):
   """POST create (requests 1601-1602)."""
   result=None
   self.token_javaxfacesViewState = \
     'v1Dxx9hSieZwMVPzZZHAPSkIfrSZM1jbO4mNTTN2U0GpxoAFjzFhwEssO/Z0p/uzbvKU911yLbSq+zJDdF6NVCJ26sWnV8yXnx+/NyzHnuM072oC245y6Q=='

   # Expecting 302 'Moved Temporarily'
   result = request1601.POST('/something/over/here/create' +
     '?execution=' +
     self.token_execution,
     ( NVPair('addressAndContact:userAddress:streetNumberSuffix', ''),
       NVPair('addressAndContact:userAddress:unit', ''),
       NVPair('addressAndContact:userAddress:postalCode', 'K1A 0B1'),
       NVPair('addressAndContact:misdevContact:businessLegalName',
'Functional Tester'),
       NVPair('addressAndContact:misdevContact:operatingName', ''),
       NVPair('addressAndContact:misdevContact:firstName', 'Functional'),
       NVPair('addressAndContact:misdevContact:lastName', 'Tester'),
       NVPair('addressAndContact:misdevContact:emailAddress',
'ouray-BbpMSQBCDjY&amp;lt; at &amp;gt;public.gmane.org'),
       NVPair('addressAndContact:misdevContact:phoneNumber', '6132345678'),
       NVPair('addressAndContact:misdevContact:extensionN', ''),
       NVPair('addressAndContact:misdevContact:languagePref', 'E'),
       NVPair('addressAndContact:continue.x', '25'),
       NVPair('addressAndContact:continue.y', '11'),
       NVPair('autoScroll', self.token_autoScroll),
       NVPair('addressAndContact_SUBMIT', '1'),
       NVPair('javax.faces.ViewState', self.token_javaxfacesViewState), ),
     ( NVPair('Content-Type', 'application/x-www-form-urlencoded'),
       httpUtilities.basicAuthorizationHeader('cpouser', 'CPOu53r'), ))
   self.token_execution = \
     httpUtilities.valueFromLocationURI('execution') # 'e2s3'

   request1602.GET('/something/over/here/create' +
     '?execution=' +
     self.token_execution, None,
     ( httpUtilities.basicAuthorizationHeader('cpouser', 'CPOu53r'), ))
   # 2 different values for token_mode found in response; the first matched
   # the last known value of token_mode - don't update the variable.

   return result

reviewing the API docs for the POST() method, there is no instance
where the POST takes three NVPAIRs.

Here is the method signature:

 HTTPResponse   POST(java.lang.String uri, NVPair[] formData, NVPair[]
headers, boolean isMultipart)
         Makes an HTTP POST request.

In conclusion, I adjusted the dodgy POSTs (that had 3 NVPAIR definitions) re-ran the script and had no issues.


----------------------------------------------------------------------

Date: 2012-05-10 22:38

Message:
This has been fixed in versions &amp;gt; 3.8.  I will be happy to re-test this
with an official build (if required).

----------------------------------------------------------------------

Comment By: Ouray Viney (oviney)
Date: 2012-05-09 10:43

Message:
I checked out a copy from git and built locally.  In this version, the
problem is no longer present.  I will be happy to test a official build
when one is ready.

----------------------------------------------------------------------

Comment By: Ouray Viney (oviney)
Date: 2012-05-07 09:11

Message:
Upon further investigation of this issue, it appears that the issue is that
TCPProxy incorrectly duplicates NVPairs in the POST.



----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&amp;amp;atid=118598&amp;amp;aid=3524364&amp;amp;group_id=18598

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
&lt;/pre&gt;</description>
    <dc:creator>SourceForge.net</dc:creator>
    <dc:date>2012-05-11T05:38:44</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.java.grinder.devel/1759">
    <title>[ grinder-Bugs-3525735 ] Missing summary oferrors in the Console</title>
    <link>http://comments.gmane.org/gmane.comp.java.grinder.devel/1759</link>
    <description>&lt;pre&gt;Bugs item #3525735, was opened at 2012-05-10 22:36
Message generated for change (Tracker Item Submitted) made by oviney
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&amp;amp;atid=118598&amp;amp;aid=3525735&amp;amp;group_id=18598

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: Console
Group: None
Status: Open
Resolution: None
Priority: 5
Private: No
Submitted By: Ouray Viney (oviney)
Assigned to: Nobody/Anonymous (nobody)
Summary: Missing summary of errors in the Console

Initial Comment:
I was testing out Grinder 3.8 and was using some script developed with Grinder 3.4.  One thing I noticed that doesn't seem right is the aggregation of ERRORs in the console, both in the grid view and in the summary view (left most summary box - Mean TPS, Mean Response Time, Total Tests etc.).

I will upload a screenshot later today, don't have access to the assets at the moment.

Note:  I tested this with Grinder 3.8 and 3.9 and a local build from 'git'.

Java version:  1.6.0_13-b03

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&amp;amp;atid=118598&amp;amp;aid=3525735&amp;amp;group_id=18598

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
&lt;/pre&gt;</description>
    <dc:creator>SourceForge.net</dc:creator>
    <dc:date>2012-05-11T05:36:18</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.java.grinder.devel/1758">
    <title>[ grinder-Bugs-3525733 ] No clear errorslogged when Grinder can't find a lib ref</title>
    <link>http://comments.gmane.org/gmane.comp.java.grinder.devel/1758</link>
    <description>&lt;pre&gt;Bugs item #3525733, was opened at 2012-05-10 22:29
Message generated for change (Settings changed) made by oviney
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&amp;amp;atid=118598&amp;amp;aid=3525733&amp;amp;group_id=18598

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: Core engine
Group: None
Status: Open
Resolution: None
Priority: 5
Private: No
Submitted By: Ouray Viney (oviney)
Assigned to: Nobody/Anonymous (nobody)

Initial Comment:
Hi All:

I ran into an odd issue today when testing a Grinder upgrade from version 3.4 to 3.8.  I performed the upgrade, tested out a script.  During this process I noticed that the agent worker processor started up and then died (CPU spiked and then dropped back to zero).  There were no results in the console and no trace of any errors/exceptions in the logs.  So decided a good testing strategy was to roll back the Grinder version until I got some logging about what was wrong.

Here is what was showing up in the logs with Grinder version 3.8:

2012-05-09 10:23:14,465 INFO  lingrndctl-0 : The Grinder version 3.8
2012-05-09 10:23:14,470 INFO  lingrndctl-0 : Java(TM) SE Runtime Environment 1.6.0_13-b03: Java HotSpot(TM) Client VM (11.3-b02, mixed mode) on Linux i386 2.6.18-194.32.1.el5xen
2012-05-09 10:23:14,474 INFO  lingrndctl-0 : time zone is EDT (-0400)
2012-05-09 10:23:14,563 INFO  lingrndctl-0 : worker process 0 of agent number 0
2012-05-09 10:23:14,766 INFO  lingrndctl-0 : instrumentation agents: byte code transforming instrumenter for Jython 2.5; byte code transforming instrumenter for Java
2012-05-09 10:23:18,439 INFO  lingrndctl-0 : registered plug-in net.grinder.plugin.http.HTTPPlugin

I had to "roll back" all the way to Grinder 3.4 before I actually got to the root of the issue.  From the error log provided in Grinder 3.4, it was caused by a missing jar that was being referenced in my script.

I will post my script and Grinder environment details later today, don't have access to the stuff at the moment.

** Note:  **  In order to reproduce this, you should be able to take any script that uses a third party library.  In my example, I was using Jsoup (http://jsoup.org/).  Since I had recently done an upgrade, I had forgotten to add the jar to the path.  IIRC, you have two options here, 1) place a reference to the jar in the setGrinderEnv script (bat or shell) 2) add the appropriate path to the said grinder.properties to have the jars added to the class path of the worker processor.

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&amp;amp;atid=118598&amp;amp;aid=3525733&amp;amp;group_id=18598

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
&lt;/pre&gt;</description>
    <dc:creator>SourceForge.net</dc:creator>
    <dc:date>2012-05-11T05:30:00</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.java.grinder.devel/1757">
    <title>[ grinder-Bugs-3525733 ] No clear errorslogged with Grinder</title>
    <link>http://comments.gmane.org/gmane.comp.java.grinder.devel/1757</link>
    <description>&lt;pre&gt;Bugs item #3525733, was opened at 2012-05-10 22:29
Message generated for change (Tracker Item Submitted) made by oviney
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&amp;amp;atid=118598&amp;amp;aid=3525733&amp;amp;group_id=18598

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: Core engine
Group: None
Status: Open
Resolution: None
Priority: 5
Private: No
Submitted By: Ouray Viney (oviney)
Assigned to: Nobody/Anonymous (nobody)
Summary: No clear errors logged with Grinder

Initial Comment:
Hi All:

I ran into an odd issue today when testing a Grinder upgrade from version 3.4 to 3.8.  I performed the upgrade, tested out a script.  During this process I noticed that the agent worker processor started up and then died (CPU spiked and then dropped back to zero).  There were no results in the console and no trace of any errors/exceptions in the logs.  So decided a good testing strategy was to roll back the Grinder version until I got some logging about what was wrong.

Here is what was showing up in the logs with Grinder version 3.8:

2012-05-09 10:23:14,465 INFO  lingrndctl-0 : The Grinder version 3.8
2012-05-09 10:23:14,470 INFO  lingrndctl-0 : Java(TM) SE Runtime Environment 1.6.0_13-b03: Java HotSpot(TM) Client VM (11.3-b02, mixed mode) on Linux i386 2.6.18-194.32.1.el5xen
2012-05-09 10:23:14,474 INFO  lingrndctl-0 : time zone is EDT (-0400)
2012-05-09 10:23:14,563 INFO  lingrndctl-0 : worker process 0 of agent number 0
2012-05-09 10:23:14,766 INFO  lingrndctl-0 : instrumentation agents: byte code transforming instrumenter for Jython 2.5; byte code transforming instrumenter for Java
2012-05-09 10:23:18,439 INFO  lingrndctl-0 : registered plug-in net.grinder.plugin.http.HTTPPlugin

I had to "roll back" all the way to Grinder 3.4 before I actually got to the root of the issue.  From the error log provided in Grinder 3.4, it was caused by a missing jar that was being referenced in my script.

I will post my script and Grinder environment details later today, don't have access to the stuff at the moment.

** Note:  **  In order to reproduce this, you should be able to take any script that uses a third party library.  In my example, I was using Jsoup (http://jsoup.org/).  Since I had recently done an upgrade, I had forgotten to add the jar to the path.  IIRC, you have two options here, 1) place a reference to the jar in the setGrinderEnv script (bat or shell) 2) add the appropriate path to the said grinder.properties to have the jars added to the class path of the worker processor.

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&amp;amp;atid=118598&amp;amp;aid=3525733&amp;amp;group_id=18598

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
&lt;/pre&gt;</description>
    <dc:creator>SourceForge.net</dc:creator>
    <dc:date>2012-05-11T05:29:03</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.java.grinder.devel/1756">
    <title>[ grinder-Bugs-3525156 ] Null pointerexeception when posting form data</title>
    <link>http://comments.gmane.org/gmane.comp.java.grinder.devel/1756</link>
    <description>&lt;pre&gt;Bugs item #3525156, was opened at 2012-05-09 09:17
Message generated for change (Comment added) made by oviney
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&amp;amp;atid=118598&amp;amp;aid=3525156&amp;amp;group_id=18598

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: HTTP Plugin
Group: None
Status: Open
Resolution: None
Priority: 3
Private: No
Submitted By: Ouray Viney (oviney)
Assigned to: Philip Aston (philipa)
Summary: Null pointer exeception when posting form data

Initial Comment:
Upgraded my Grinder 3.4 to 3.8 and got the following exception:


2012-05-09 11:22:56,663 ERROR lingrndctl-0 thread-15 [ run-0 ]: Aborted run: Java exception calling TestRunner
net.grinder.scriptengine.jython.JythonScriptExecutionException: Java exception calling TestRunner
        result = getCommRateRequest.POST(self.URI, self.getCommRateXMLPayload,
        File "/opt/home/testusr1/est/bdt1.1/bin/./lingrndctl-file-store/current/ca/innovapost/test/scenarios/tpoGetCommRate.py", line 108, in getCommRate
        getCommRateResponse = self.getCommRate()
        File "/opt/home/testusr1/est/bdt1.1/bin/./lingrndctl-file-store/current/ca/innovapost/test/scenarios/tpoGetCommRate.py", line 124, in __call__
        self.testRunner()
        File "/opt/home/testusr1/est/bdt1.1/bin/./lingrndctl-file-store/current/ca/innovapost/test/resources/../scenarios/tpoPerformanceScenario1x.py", line 111, in __call__
java.lang.NullPointerException: null
        at net.grinder.plugin.http.HTTPRequest.mergeArrays(HTTPRequest.java:184) ~[grinder-http-3.8.jar:na]
        at net.grinder.plugin.http.HTTPRequest.mergeHeaders(HTTPRequest.java:197) ~[grinder-http-3.8.jar:na]
        at net.grinder.plugin.http.HTTPRequest.access$000(HTTPRequest.java:99) ~[grinder-http-3.8.jar:na]
        at net.grinder.plugin.http.HTTPRequest$AbstractRequest.&amp;lt;init&amp;gt;(HTTPRequest.java:1181) ~[grinder-http-3.8.jar:na]
        at net.grinder.plugin.http.HTTPRequest$8.&amp;lt;init&amp;gt;(HTTPRequest.java:902) ~[grinder-http-3.8.jar:na]
        at net.grinder.plugin.http.HTTPRequest.POST(HTTPRequest.java:902) ~[grinder-http-3.8.jar:na]
        at sun.reflect.GeneratedMethodAccessor47.invoke(Unknown Source) ~[na:na]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[na:1.6.0_13]
        at java.lang.reflect.Method.invoke(Unknown Source) ~[na:1.6.0_13]
        at org.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java:186) ~[jython.jar:na]
        at org.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java:204) ~[jython.jar:na]
        at org.python.core.PyObject.__call__(PyObject.java:441) ~[jython.jar:na]
        at org.python.core.PyObject.__call__(PyObject.java:447) ~[jython.jar:na]
        at org.python.core.PyMethod.__call__(PyMethod.java:154) ~[jython.jar:na]

This problem was fixed in the past - here is the original post http://permalink.gmane.org/gmane.comp.java.grinder.user/8086

----------------------------------------------------------------------

Date: 2012-05-10 22:11

Message:
Yes, I agree with your suggestion re: throwing an NPE with more specific
details.

----------------------------------------------------------------------

Comment By: Philip Aston (philipa)
Date: 2012-05-10 08:11

Message:
It could be a regression caused by the 3.7 change.

Anyway, yes, I agree the grinder could handle it better. I don't think it
should allow the (None, blah), because there's nothing to be done with it.
Would throwing a NullPointerException with a more specific message, e.g.
"NVPair name is null" be more useful.

----------------------------------------------------------------------

Comment By: Ouray Viney (oviney)
Date: 2012-05-10 08:06

Message:
Hi Again:

Phil, I think you were right, *AGAIN*!

I reviewed the source code for the said script.  I noticed the following
line:

        # Send the request over the wire        
        result = getCommRateRequest.POST(self.URI,
self.getCommRateXMLPayload,
                (None,))

I adjusted that to:

        # Send the request over the wire        
        result = getCommRateRequest.POST(self.URI,
self.getCommRateXMLPayload)

Retried with the Grinder 3.8 jars and this time had no issues.  So, if this
is a script error, then:

1) Grinder 3.4 was swallowing the NPE
2) Grinder 3.8 was no longer catching the NPE

I supposed it would be good if Grinder 3.8 gave a more user friendly
exception message =).

Errors like these are easy to  accidentally introduce as the "grinderstone"
eclipse plugin doesn't check these types of programmatic errors.  I am open
to any suggestions on how to improve checking of these types of errors.

Thanks,

Ouray

----------------------------------------------------------------------

Comment By: Ouray Viney (oviney)
Date: 2012-05-10 07:57

Message:
Hi:

Interesting.  This same script runs fine in Grinder 3.4 with the said
patch.  That is why I thought it *might* be a regression bug.

I just ran this with Grinder 3.4 (with the patch included in the class
path).

Here is the POST:


POST https://foobart.com:5000/webservice/RateShoppingService HTTP/1.1
Host: foobart.com:5000
Connection: Keep-Alive, TE
TE: trailers
User-Agent: Jakarta Commons-HttpClient/3.1
Accept-Language: en-CA
Accept-Encoding: gzip,deflate
Content-Type: text/xml;charset=UTF-8
Content-length: 2175


&amp;lt;soapenv:Envelope
xmlns:rat="http://foobart.com/ebusiness/RateShoppingServiceWrapper"
xmlns:rat1="http://foobart.com/ebusiness/RateShoppingService"
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"&amp;gt;
&amp;lt;soapenv:Header&amp;gt;
&amp;lt;wsse:Security soapenv:mustUnderstand="1"
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"&amp;gt;
&amp;lt;wsse:UsernameToken wsu:Id="UsernameToken-1"
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"&amp;gt;
&amp;lt;wsse:Username&amp;gt;FOOBART&amp;lt;/wsse:Username&amp;gt;
&amp;lt;wsse:Password
Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText"&amp;gt;FOOBART&amp;lt;/wsse:Password&amp;gt;
&amp;lt;wsse:Nonce
EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary"&amp;gt;ABCY77864&amp;lt;/wsse:Nonce&amp;gt;
&amp;lt;wsu:Created&amp;gt;2012-01-25T18:25:53.729Z&amp;lt;/wsu:Created&amp;gt;
&amp;lt;/wsse:UsernameToken&amp;gt;
&amp;lt;/wsse:Security&amp;gt;
&amp;lt;/soapenv:Header&amp;gt;
&amp;lt;soapenv:Body&amp;gt;
&amp;lt;rat:getCommRate&amp;gt;
&amp;lt;rat:request&amp;gt;
&amp;lt;!--1 or more repetitions:--&amp;gt;
&amp;lt;rat1:MailingScenario&amp;gt;
&amp;lt;rat1:ChannelTypeCode&amp;gt;COMMERCIAL&amp;lt;/rat1:ChannelTypeCode&amp;gt;
&amp;lt;rat1:AutomationDiscountCode&amp;gt;EORDER2&amp;lt;/rat1:AutomationDiscountCode&amp;gt;
&amp;lt;rat1:MailingDate&amp;gt;2011-10-10&amp;lt;/rat1:MailingDate&amp;gt;
&amp;lt;rat1:Quantity&amp;gt;10000&amp;lt;/rat1:Quantity&amp;gt;
&amp;lt;rat1:Option Code="TRANSP"/&amp;gt;
&amp;lt;rat1:MailItemDetails&amp;gt;
&amp;lt;rat1:Weight&amp;gt;23&amp;lt;/rat1:Weight&amp;gt;
&amp;lt;!--Optional:--&amp;gt;
&amp;lt;rat1:DimensionalCharacteristics&amp;gt;
&amp;lt;!--You have a CHOICE of the next 2 items at this level--&amp;gt;
&amp;lt;rat1:SizeClassCode&amp;gt;OS1&amp;lt;/rat1:SizeClassCode&amp;gt;
&amp;lt;/rat1:DimensionalCharacteristics&amp;gt;
&amp;lt;/rat1:MailItemDetails&amp;gt;
&amp;lt;rat1:ProductServiceID&amp;gt;DOM.UA&amp;lt;/rat1:ProductServiceID&amp;gt;
&amp;lt;rat1:ProvinceOfDeposit&amp;gt;ON&amp;lt;/rat1:ProvinceOfDeposit&amp;gt;
&amp;lt;!--Optional:--&amp;gt;
&amp;lt;rat1:PrepTypeCode&amp;gt;LC&amp;lt;/rat1:PrepTypeCode&amp;gt;
&amp;lt;/rat1:MailingScenario&amp;gt;
&amp;lt;/rat:request&amp;gt;
&amp;lt;/rat:getCommRate&amp;gt;
&amp;lt;/soapenv:Body&amp;gt;
&amp;lt;/soapenv:Envelope&amp;gt;


----------------------------------------------------------------------

Comment By: Philip Aston (philipa)
Date: 2012-05-10 07:33

Message:
This has similar symptoms to the previous bug (3006631) that was fixed in
3.7, but is different, rather than a regression from 3.7. The previous bug
was specific to multipart handling. I can see from your stack trace that
you are not posting multipart data, so I've corrected the bug subject.

Can you add the POST that caused this? As far as I can see, the header
array your supplying is invalid; one of the NVPairs has a null name.

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&amp;amp;atid=118598&amp;amp;aid=3525156&amp;amp;group_id=18598

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
&lt;/pre&gt;</description>
    <dc:creator>SourceForge.net</dc:creator>
    <dc:date>2012-05-11T05:11:45</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.java.grinder.devel/1755">
    <title>[ grinder-Bugs-3525156 ] Null pointerexeception when posting form data</title>
    <link>http://comments.gmane.org/gmane.comp.java.grinder.devel/1755</link>
    <description>&lt;pre&gt;Bugs item #3525156, was opened at 2012-05-09 09:17
Message generated for change (Comment added) made by philipa
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&amp;amp;atid=118598&amp;amp;aid=3525156&amp;amp;group_id=18598

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: HTTP Plugin
Group: None
Status: Open
Resolution: None
Private: No
Submitted By: Ouray Viney (oviney)
Assigned to: Philip Aston (philipa)
Summary: Null pointer exeception when posting form data

Initial Comment:
Upgraded my Grinder 3.4 to 3.8 and got the following exception:


2012-05-09 11:22:56,663 ERROR lingrndctl-0 thread-15 [ run-0 ]: Aborted run: Java exception calling TestRunner
net.grinder.scriptengine.jython.JythonScriptExecutionException: Java exception calling TestRunner
        result = getCommRateRequest.POST(self.URI, self.getCommRateXMLPayload,
        File "/opt/home/testusr1/est/bdt1.1/bin/./lingrndctl-file-store/current/ca/innovapost/test/scenarios/tpoGetCommRate.py", line 108, in getCommRate
        getCommRateResponse = self.getCommRate()
        File "/opt/home/testusr1/est/bdt1.1/bin/./lingrndctl-file-store/current/ca/innovapost/test/scenarios/tpoGetCommRate.py", line 124, in __call__
        self.testRunner()
        File "/opt/home/testusr1/est/bdt1.1/bin/./lingrndctl-file-store/current/ca/innovapost/test/resources/../scenarios/tpoPerformanceScenario1x.py", line 111, in __call__
java.lang.NullPointerException: null
        at net.grinder.plugin.http.HTTPRequest.mergeArrays(HTTPRequest.java:184) ~[grinder-http-3.8.jar:na]
        at net.grinder.plugin.http.HTTPRequest.mergeHeaders(HTTPRequest.java:197) ~[grinder-http-3.8.jar:na]
        at net.grinder.plugin.http.HTTPRequest.access$000(HTTPRequest.java:99) ~[grinder-http-3.8.jar:na]
        at net.grinder.plugin.http.HTTPRequest$AbstractRequest.&amp;lt;init&amp;gt;(HTTPRequest.java:1181) ~[grinder-http-3.8.jar:na]
        at net.grinder.plugin.http.HTTPRequest$8.&amp;lt;init&amp;gt;(HTTPRequest.java:902) ~[grinder-http-3.8.jar:na]
        at net.grinder.plugin.http.HTTPRequest.POST(HTTPRequest.java:902) ~[grinder-http-3.8.jar:na]
        at sun.reflect.GeneratedMethodAccessor47.invoke(Unknown Source) ~[na:na]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[na:1.6.0_13]
        at java.lang.reflect.Method.invoke(Unknown Source) ~[na:1.6.0_13]
        at org.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java:186) ~[jython.jar:na]
        at org.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java:204) ~[jython.jar:na]
        at org.python.core.PyObject.__call__(PyObject.java:441) ~[jython.jar:na]
        at org.python.core.PyObject.__call__(PyObject.java:447) ~[jython.jar:na]
        at org.python.core.PyMethod.__call__(PyMethod.java:154) ~[jython.jar:na]

This problem was fixed in the past - here is the original post http://permalink.gmane.org/gmane.comp.java.grinder.user/8086

----------------------------------------------------------------------

Date: 2012-05-10 08:11

Message:
It could be a regression caused by the 3.7 change.

Anyway, yes, I agree the grinder could handle it better. I don't think it
should allow the (None, blah), because there's nothing to be done with it.
Would throwing a NullPointerException with a more specific message, e.g.
"NVPair name is null" be more useful.

----------------------------------------------------------------------

Comment By: Ouray Viney (oviney)
Date: 2012-05-10 08:06

Message:
Hi Again:

Phil, I think you were right, *AGAIN*!

I reviewed the source code for the said script.  I noticed the following
line:

        # Send the request over the wire        
        result = getCommRateRequest.POST(self.URI,
self.getCommRateXMLPayload,
                (None,))

I adjusted that to:

        # Send the request over the wire        
        result = getCommRateRequest.POST(self.URI,
self.getCommRateXMLPayload)

Retried with the Grinder 3.8 jars and this time had no issues.  So, if this
is a script error, then:

1) Grinder 3.4 was swallowing the NPE
2) Grinder 3.8 was no longer catching the NPE

I supposed it would be good if Grinder 3.8 gave a more user friendly
exception message =).

Errors like these are easy to  accidentally introduce as the "grinderstone"
eclipse plugin doesn't check these types of programmatic errors.  I am open
to any suggestions on how to improve checking of these types of errors.

Thanks,

Ouray

----------------------------------------------------------------------

Comment By: Ouray Viney (oviney)
Date: 2012-05-10 07:57

Message:
Hi:

Interesting.  This same script runs fine in Grinder 3.4 with the said
patch.  That is why I thought it *might* be a regression bug.

I just ran this with Grinder 3.4 (with the patch included in the class
path).

Here is the POST:


POST https://foobart.com:5000/webservice/RateShoppingService HTTP/1.1
Host: foobart.com:5000
Connection: Keep-Alive, TE
TE: trailers
User-Agent: Jakarta Commons-HttpClient/3.1
Accept-Language: en-CA
Accept-Encoding: gzip,deflate
Content-Type: text/xml;charset=UTF-8
Content-length: 2175


&amp;lt;soapenv:Envelope
xmlns:rat="http://foobart.com/ebusiness/RateShoppingServiceWrapper"
xmlns:rat1="http://foobart.com/ebusiness/RateShoppingService"
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"&amp;gt;
&amp;lt;soapenv:Header&amp;gt;
&amp;lt;wsse:Security soapenv:mustUnderstand="1"
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"&amp;gt;
&amp;lt;wsse:UsernameToken wsu:Id="UsernameToken-1"
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"&amp;gt;
&amp;lt;wsse:Username&amp;gt;FOOBART&amp;lt;/wsse:Username&amp;gt;
&amp;lt;wsse:Password
Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText"&amp;gt;FOOBART&amp;lt;/wsse:Password&amp;gt;
&amp;lt;wsse:Nonce
EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary"&amp;gt;ABCY77864&amp;lt;/wsse:Nonce&amp;gt;
&amp;lt;wsu:Created&amp;gt;2012-01-25T18:25:53.729Z&amp;lt;/wsu:Created&amp;gt;
&amp;lt;/wsse:UsernameToken&amp;gt;
&amp;lt;/wsse:Security&amp;gt;
&amp;lt;/soapenv:Header&amp;gt;
&amp;lt;soapenv:Body&amp;gt;
&amp;lt;rat:getCommRate&amp;gt;
&amp;lt;rat:request&amp;gt;
&amp;lt;!--1 or more repetitions:--&amp;gt;
&amp;lt;rat1:MailingScenario&amp;gt;
&amp;lt;rat1:ChannelTypeCode&amp;gt;COMMERCIAL&amp;lt;/rat1:ChannelTypeCode&amp;gt;
&amp;lt;rat1:AutomationDiscountCode&amp;gt;EORDER2&amp;lt;/rat1:AutomationDiscountCode&amp;gt;
&amp;lt;rat1:MailingDate&amp;gt;2011-10-10&amp;lt;/rat1:MailingDate&amp;gt;
&amp;lt;rat1:Quantity&amp;gt;10000&amp;lt;/rat1:Quantity&amp;gt;
&amp;lt;rat1:Option Code="TRANSP"/&amp;gt;
&amp;lt;rat1:MailItemDetails&amp;gt;
&amp;lt;rat1:Weight&amp;gt;23&amp;lt;/rat1:Weight&amp;gt;
&amp;lt;!--Optional:--&amp;gt;
&amp;lt;rat1:DimensionalCharacteristics&amp;gt;
&amp;lt;!--You have a CHOICE of the next 2 items at this level--&amp;gt;
&amp;lt;rat1:SizeClassCode&amp;gt;OS1&amp;lt;/rat1:SizeClassCode&amp;gt;
&amp;lt;/rat1:DimensionalCharacteristics&amp;gt;
&amp;lt;/rat1:MailItemDetails&amp;gt;
&amp;lt;rat1:ProductServiceID&amp;gt;DOM.UA&amp;lt;/rat1:ProductServiceID&amp;gt;
&amp;lt;rat1:ProvinceOfDeposit&amp;gt;ON&amp;lt;/rat1:ProvinceOfDeposit&amp;gt;
&amp;lt;!--Optional:--&amp;gt;
&amp;lt;rat1:PrepTypeCode&amp;gt;LC&amp;lt;/rat1:PrepTypeCode&amp;gt;
&amp;lt;/rat1:MailingScenario&amp;gt;
&amp;lt;/rat:request&amp;gt;
&amp;lt;/rat:getCommRate&amp;gt;
&amp;lt;/soapenv:Body&amp;gt;
&amp;lt;/soapenv:Envelope&amp;gt;


----------------------------------------------------------------------

Comment By: Philip Aston (philipa)
Date: 2012-05-10 07:33

Message:
This has similar symptoms to the previous bug (3006631) that was fixed in
3.7, but is different, rather than a regression from 3.7. The previous bug
was specific to multipart handling. I can see from your stack trace that
you are not posting multipart data, so I've corrected the bug subject.

Can you add the POST that caused this? As far as I can see, the header
array your supplying is invalid; one of the NVPairs has a null name.

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&amp;amp;atid=118598&amp;amp;aid=3525156&amp;amp;group_id=18598

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
&lt;/pre&gt;</description>
    <dc:creator>SourceForge.net</dc:creator>
    <dc:date>2012-05-10T15:11:38</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.java.grinder.devel/1754">
    <title>[ grinder-Bugs-3525156 ] Null pointerexeception when posting form data</title>
    <link>http://comments.gmane.org/gmane.comp.java.grinder.devel/1754</link>
    <description>&lt;pre&gt;Bugs item #3525156, was opened at 2012-05-09 09:17
Message generated for change (Comment added) made by oviney
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&amp;amp;atid=118598&amp;amp;aid=3525156&amp;amp;group_id=18598

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: HTTP Plugin
Group: None
Status: Open
Resolution: None
Priority: 5
Private: No
Submitted By: Ouray Viney (oviney)
Assigned to: Philip Aston (philipa)
Summary: Null pointer exeception when posting form data

Initial Comment:
Upgraded my Grinder 3.4 to 3.8 and got the following exception:


2012-05-09 11:22:56,663 ERROR lingrndctl-0 thread-15 [ run-0 ]: Aborted run: Java exception calling TestRunner
net.grinder.scriptengine.jython.JythonScriptExecutionException: Java exception calling TestRunner
        result = getCommRateRequest.POST(self.URI, self.getCommRateXMLPayload,
        File "/opt/home/testusr1/est/bdt1.1/bin/./lingrndctl-file-store/current/ca/innovapost/test/scenarios/tpoGetCommRate.py", line 108, in getCommRate
        getCommRateResponse = self.getCommRate()
        File "/opt/home/testusr1/est/bdt1.1/bin/./lingrndctl-file-store/current/ca/innovapost/test/scenarios/tpoGetCommRate.py", line 124, in __call__
        self.testRunner()
        File "/opt/home/testusr1/est/bdt1.1/bin/./lingrndctl-file-store/current/ca/innovapost/test/resources/../scenarios/tpoPerformanceScenario1x.py", line 111, in __call__
java.lang.NullPointerException: null
        at net.grinder.plugin.http.HTTPRequest.mergeArrays(HTTPRequest.java:184) ~[grinder-http-3.8.jar:na]
        at net.grinder.plugin.http.HTTPRequest.mergeHeaders(HTTPRequest.java:197) ~[grinder-http-3.8.jar:na]
        at net.grinder.plugin.http.HTTPRequest.access$000(HTTPRequest.java:99) ~[grinder-http-3.8.jar:na]
        at net.grinder.plugin.http.HTTPRequest$AbstractRequest.&amp;lt;init&amp;gt;(HTTPRequest.java:1181) ~[grinder-http-3.8.jar:na]
        at net.grinder.plugin.http.HTTPRequest$8.&amp;lt;init&amp;gt;(HTTPRequest.java:902) ~[grinder-http-3.8.jar:na]
        at net.grinder.plugin.http.HTTPRequest.POST(HTTPRequest.java:902) ~[grinder-http-3.8.jar:na]
        at sun.reflect.GeneratedMethodAccessor47.invoke(Unknown Source) ~[na:na]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[na:1.6.0_13]
        at java.lang.reflect.Method.invoke(Unknown Source) ~[na:1.6.0_13]
        at org.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java:186) ~[jython.jar:na]
        at org.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java:204) ~[jython.jar:na]
        at org.python.core.PyObject.__call__(PyObject.java:441) ~[jython.jar:na]
        at org.python.core.PyObject.__call__(PyObject.java:447) ~[jython.jar:na]
        at org.python.core.PyMethod.__call__(PyMethod.java:154) ~[jython.jar:na]

This problem was fixed in the past - here is the original post http://permalink.gmane.org/gmane.comp.java.grinder.user/8086

----------------------------------------------------------------------

Date: 2012-05-10 08:06

Message:
Hi Again:

Phil, I think you were right, *AGAIN*!

I reviewed the source code for the said script.  I noticed the following
line:

        # Send the request over the wire        
        result = getCommRateRequest.POST(self.URI,
self.getCommRateXMLPayload,
                (None,))

I adjusted that to:

        # Send the request over the wire        
        result = getCommRateRequest.POST(self.URI,
self.getCommRateXMLPayload)

Retried with the Grinder 3.8 jars and this time had no issues.  So, if this
is a script error, then:

1) Grinder 3.4 was swallowing the NPE
2) Grinder 3.8 was no longer catching the NPE

I supposed it would be good if Grinder 3.8 gave a more user friendly
exception message =).

Errors like these are easy to  accidentally introduce as the "grinderstone"
eclipse plugin doesn't check these types of programmatic errors.  I am open
to any suggestions on how to improve checking of these types of errors.

Thanks,

Ouray

----------------------------------------------------------------------

Comment By: Ouray Viney (oviney)
Date: 2012-05-10 07:57

Message:
Hi:

Interesting.  This same script runs fine in Grinder 3.4 with the said
patch.  That is why I thought it *might* be a regression bug.

I just ran this with Grinder 3.4 (with the patch included in the class
path).

Here is the POST:


POST https://foobart.com:5000/webservice/RateShoppingService HTTP/1.1
Host: foobart.com:5000
Connection: Keep-Alive, TE
TE: trailers
User-Agent: Jakarta Commons-HttpClient/3.1
Accept-Language: en-CA
Accept-Encoding: gzip,deflate
Content-Type: text/xml;charset=UTF-8
Content-length: 2175


&amp;lt;soapenv:Envelope
xmlns:rat="http://foobart.com/ebusiness/RateShoppingServiceWrapper"
xmlns:rat1="http://foobart.com/ebusiness/RateShoppingService"
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"&amp;gt;
&amp;lt;soapenv:Header&amp;gt;
&amp;lt;wsse:Security soapenv:mustUnderstand="1"
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"&amp;gt;
&amp;lt;wsse:UsernameToken wsu:Id="UsernameToken-1"
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"&amp;gt;
&amp;lt;wsse:Username&amp;gt;FOOBART&amp;lt;/wsse:Username&amp;gt;
&amp;lt;wsse:Password
Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText"&amp;gt;FOOBART&amp;lt;/wsse:Password&amp;gt;
&amp;lt;wsse:Nonce
EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary"&amp;gt;ABCY77864&amp;lt;/wsse:Nonce&amp;gt;
&amp;lt;wsu:Created&amp;gt;2012-01-25T18:25:53.729Z&amp;lt;/wsu:Created&amp;gt;
&amp;lt;/wsse:UsernameToken&amp;gt;
&amp;lt;/wsse:Security&amp;gt;
&amp;lt;/soapenv:Header&amp;gt;
&amp;lt;soapenv:Body&amp;gt;
&amp;lt;rat:getCommRate&amp;gt;
&amp;lt;rat:request&amp;gt;
&amp;lt;!--1 or more repetitions:--&amp;gt;
&amp;lt;rat1:MailingScenario&amp;gt;
&amp;lt;rat1:ChannelTypeCode&amp;gt;COMMERCIAL&amp;lt;/rat1:ChannelTypeCode&amp;gt;
&amp;lt;rat1:AutomationDiscountCode&amp;gt;EORDER2&amp;lt;/rat1:AutomationDiscountCode&amp;gt;
&amp;lt;rat1:MailingDate&amp;gt;2011-10-10&amp;lt;/rat1:MailingDate&amp;gt;
&amp;lt;rat1:Quantity&amp;gt;10000&amp;lt;/rat1:Quantity&amp;gt;
&amp;lt;rat1:Option Code="TRANSP"/&amp;gt;
&amp;lt;rat1:MailItemDetails&amp;gt;
&amp;lt;rat1:Weight&amp;gt;23&amp;lt;/rat1:Weight&amp;gt;
&amp;lt;!--Optional:--&amp;gt;
&amp;lt;rat1:DimensionalCharacteristics&amp;gt;
&amp;lt;!--You have a CHOICE of the next 2 items at this level--&amp;gt;
&amp;lt;rat1:SizeClassCode&amp;gt;OS1&amp;lt;/rat1:SizeClassCode&amp;gt;
&amp;lt;/rat1:DimensionalCharacteristics&amp;gt;
&amp;lt;/rat1:MailItemDetails&amp;gt;
&amp;lt;rat1:ProductServiceID&amp;gt;DOM.UA&amp;lt;/rat1:ProductServiceID&amp;gt;
&amp;lt;rat1:ProvinceOfDeposit&amp;gt;ON&amp;lt;/rat1:ProvinceOfDeposit&amp;gt;
&amp;lt;!--Optional:--&amp;gt;
&amp;lt;rat1:PrepTypeCode&amp;gt;LC&amp;lt;/rat1:PrepTypeCode&amp;gt;
&amp;lt;/rat1:MailingScenario&amp;gt;
&amp;lt;/rat:request&amp;gt;
&amp;lt;/rat:getCommRate&amp;gt;
&amp;lt;/soapenv:Body&amp;gt;
&amp;lt;/soapenv:Envelope&amp;gt;


----------------------------------------------------------------------

Comment By: Philip Aston (philipa)
Date: 2012-05-10 07:33

Message:
This has similar symptoms to the previous bug (3006631) that was fixed in
3.7, but is different, rather than a regression from 3.7. The previous bug
was specific to multipart handling. I can see from your stack trace that
you are not posting multipart data, so I've corrected the bug subject.

Can you add the POST that caused this? As far as I can see, the header
array your supplying is invalid; one of the NVPairs has a null name.

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&amp;amp;atid=118598&amp;amp;aid=3525156&amp;amp;group_id=18598

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
&lt;/pre&gt;</description>
    <dc:creator>SourceForge.net</dc:creator>
    <dc:date>2012-05-10T15:06:25</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.java.grinder.devel/1753">
    <title>[ grinder-Bugs-3525156 ] Null pointerexeception when posting form data</title>
    <link>http://comments.gmane.org/gmane.comp.java.grinder.devel/1753</link>
    <description>&lt;pre&gt;Bugs item #3525156, was opened at 2012-05-09 09:17
Message generated for change (Comment added) made by oviney
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&amp;amp;atid=118598&amp;amp;aid=3525156&amp;amp;group_id=18598

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: HTTP Plugin
Group: None
Status: Open
Resolution: None
Priority: 5
Private: No
Submitted By: Ouray Viney (oviney)
Assigned to: Philip Aston (philipa)
Summary: Null pointer exeception when posting form data

Initial Comment:
Upgraded my Grinder 3.4 to 3.8 and got the following exception:


2012-05-09 11:22:56,663 ERROR lingrndctl-0 thread-15 [ run-0 ]: Aborted run: Java exception calling TestRunner
net.grinder.scriptengine.jython.JythonScriptExecutionException: Java exception calling TestRunner
        result = getCommRateRequest.POST(self.URI, self.getCommRateXMLPayload,
        File "/opt/home/testusr1/est/bdt1.1/bin/./lingrndctl-file-store/current/ca/innovapost/test/scenarios/tpoGetCommRate.py", line 108, in getCommRate
        getCommRateResponse = self.getCommRate()
        File "/opt/home/testusr1/est/bdt1.1/bin/./lingrndctl-file-store/current/ca/innovapost/test/scenarios/tpoGetCommRate.py", line 124, in __call__
        self.testRunner()
        File "/opt/home/testusr1/est/bdt1.1/bin/./lingrndctl-file-store/current/ca/innovapost/test/resources/../scenarios/tpoPerformanceScenario1x.py", line 111, in __call__
java.lang.NullPointerException: null
        at net.grinder.plugin.http.HTTPRequest.mergeArrays(HTTPRequest.java:184) ~[grinder-http-3.8.jar:na]
        at net.grinder.plugin.http.HTTPRequest.mergeHeaders(HTTPRequest.java:197) ~[grinder-http-3.8.jar:na]
        at net.grinder.plugin.http.HTTPRequest.access$000(HTTPRequest.java:99) ~[grinder-http-3.8.jar:na]
        at net.grinder.plugin.http.HTTPRequest$AbstractRequest.&amp;lt;init&amp;gt;(HTTPRequest.java:1181) ~[grinder-http-3.8.jar:na]
        at net.grinder.plugin.http.HTTPRequest$8.&amp;lt;init&amp;gt;(HTTPRequest.java:902) ~[grinder-http-3.8.jar:na]
        at net.grinder.plugin.http.HTTPRequest.POST(HTTPRequest.java:902) ~[grinder-http-3.8.jar:na]
        at sun.reflect.GeneratedMethodAccessor47.invoke(Unknown Source) ~[na:na]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[na:1.6.0_13]
        at java.lang.reflect.Method.invoke(Unknown Source) ~[na:1.6.0_13]
        at org.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java:186) ~[jython.jar:na]
        at org.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java:204) ~[jython.jar:na]
        at org.python.core.PyObject.__call__(PyObject.java:441) ~[jython.jar:na]
        at org.python.core.PyObject.__call__(PyObject.java:447) ~[jython.jar:na]
        at org.python.core.PyMethod.__call__(PyMethod.java:154) ~[jython.jar:na]

This problem was fixed in the past - here is the original post http://permalink.gmane.org/gmane.comp.java.grinder.user/8086

----------------------------------------------------------------------

Date: 2012-05-10 07:57

Message:
Hi:

Interesting.  This same script runs fine in Grinder 3.4 with the said
patch.  That is why I thought it *might* be a regression bug.

I just ran this with Grinder 3.4 (with the patch included in the class
path).

Here is the POST:


POST https://foobart.com:5000/webservice/RateShoppingService HTTP/1.1
Host: foobart.com:5000
Connection: Keep-Alive, TE
TE: trailers
User-Agent: Jakarta Commons-HttpClient/3.1
Accept-Language: en-CA
Accept-Encoding: gzip,deflate
Content-Type: text/xml;charset=UTF-8
Content-length: 2175


&amp;lt;soapenv:Envelope
xmlns:rat="http://foobart.com/ebusiness/RateShoppingServiceWrapper"
xmlns:rat1="http://foobart.com/ebusiness/RateShoppingService"
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"&amp;gt;
&amp;lt;soapenv:Header&amp;gt;
&amp;lt;wsse:Security soapenv:mustUnderstand="1"
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"&amp;gt;
&amp;lt;wsse:UsernameToken wsu:Id="UsernameToken-1"
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"&amp;gt;
&amp;lt;wsse:Username&amp;gt;FOOBART&amp;lt;/wsse:Username&amp;gt;
&amp;lt;wsse:Password
Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText"&amp;gt;FOOBART&amp;lt;/wsse:Password&amp;gt;
&amp;lt;wsse:Nonce
EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary"&amp;gt;ABCY77864&amp;lt;/wsse:Nonce&amp;gt;
&amp;lt;wsu:Created&amp;gt;2012-01-25T18:25:53.729Z&amp;lt;/wsu:Created&amp;gt;
&amp;lt;/wsse:UsernameToken&amp;gt;
&amp;lt;/wsse:Security&amp;gt;
&amp;lt;/soapenv:Header&amp;gt;
&amp;lt;soapenv:Body&amp;gt;
&amp;lt;rat:getCommRate&amp;gt;
&amp;lt;rat:request&amp;gt;
&amp;lt;!--1 or more repetitions:--&amp;gt;
&amp;lt;rat1:MailingScenario&amp;gt;
&amp;lt;rat1:ChannelTypeCode&amp;gt;COMMERCIAL&amp;lt;/rat1:ChannelTypeCode&amp;gt;
&amp;lt;rat1:AutomationDiscountCode&amp;gt;EORDER2&amp;lt;/rat1:AutomationDiscountCode&amp;gt;
&amp;lt;rat1:MailingDate&amp;gt;2011-10-10&amp;lt;/rat1:MailingDate&amp;gt;
&amp;lt;rat1:Quantity&amp;gt;10000&amp;lt;/rat1:Quantity&amp;gt;
&amp;lt;rat1:Option Code="TRANSP"/&amp;gt;
&amp;lt;rat1:MailItemDetails&amp;gt;
&amp;lt;rat1:Weight&amp;gt;23&amp;lt;/rat1:Weight&amp;gt;
&amp;lt;!--Optional:--&amp;gt;
&amp;lt;rat1:DimensionalCharacteristics&amp;gt;
&amp;lt;!--You have a CHOICE of the next 2 items at this level--&amp;gt;
&amp;lt;rat1:SizeClassCode&amp;gt;OS1&amp;lt;/rat1:SizeClassCode&amp;gt;
&amp;lt;/rat1:DimensionalCharacteristics&amp;gt;
&amp;lt;/rat1:MailItemDetails&amp;gt;
&amp;lt;rat1:ProductServiceID&amp;gt;DOM.UA&amp;lt;/rat1:ProductServiceID&amp;gt;
&amp;lt;rat1:ProvinceOfDeposit&amp;gt;ON&amp;lt;/rat1:ProvinceOfDeposit&amp;gt;
&amp;lt;!--Optional:--&amp;gt;
&amp;lt;rat1:PrepTypeCode&amp;gt;LC&amp;lt;/rat1:PrepTypeCode&amp;gt;
&amp;lt;/rat1:MailingScenario&amp;gt;
&amp;lt;/rat:request&amp;gt;
&amp;lt;/rat:getCommRate&amp;gt;
&amp;lt;/soapenv:Body&amp;gt;
&amp;lt;/soapenv:Envelope&amp;gt;


----------------------------------------------------------------------

Comment By: Philip Aston (philipa)
Date: 2012-05-10 07:33

Message:
This has similar symptoms to the previous bug (3006631) that was fixed in
3.7, but is different, rather than a regression from 3.7. The previous bug
was specific to multipart handling. I can see from your stack trace that
you are not posting multipart data, so I've corrected the bug subject.

Can you add the POST that caused this? As far as I can see, the header
array your supplying is invalid; one of the NVPairs has a null name.

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&amp;amp;atid=118598&amp;amp;aid=3525156&amp;amp;group_id=18598

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
&lt;/pre&gt;</description>
    <dc:creator>SourceForge.net</dc:creator>
    <dc:date>2012-05-10T14:57:42</dc:date>
  </item>
  <textinput rdf:about="http://search.gmane.org/?group=$group=gmane.comp.java.grinder.devel">
    <title>Search Engine</title>
    <description>Search the mailing list at Gmane</description>
    <name>query</name>
    <link>http://search.gmane.org/?group=$group=gmane.comp.java.grinder.devel</link>
  </textinput>
</rdf:RDF>

