<ch_title>New Async BackendListener with Graphite implementation</ch_title>
<p>A new Async BackendListener has been added to allow sending result data to a backend listener.
JMeter ships with a GraphiteBackendListenerClient that allows sending results to a <ahref="http://graphite.wikidot.com/"target="_blank">Graphite</a> server using Pickle ot Plaintext protocols.
You can implement your own backend by extending <ahref="./api/org/apache/jmeter/visualizers/backend/AbstractBackendListenerClient.html">AbstractBackendListenerClient</a>. This backend could be
a database (JDBC), a Message Oriented Middleware (JMS), a Webservice or anything you want.
<p>This is the kind of Live Dashboard you can obtain using <ahref="http://grafana.org/"target="_blank">Grafana</a> and <ahref="http://influxdb.com/"target="_blank">InfluxDB</a><br/>
Read <ahref="./usermanual/realtime-results.html">this</a> for more details.</p>
<p>The listeners Aggregate Graph and Aggregate Report previously showed only the 90 percentile (historical behavior), the 95 percentile and the 99 percentile have been added and are customizable.
To setup the percentiles value you want, add to user.properties:<br/>
<p>Now component is able to detect authentication schemes and automatically adds a pre-configured HTTP Authorization Manager with the correct Mechanism.
</p>
<ch_title>HTTP Request</ch_title>
<p>The CalDAV verbs (Calendar extensions to WebDAV) REPORT and MKCALENDAR have been added in the HTTP Request sampler.
<p>Since JMeter 2.13, Stripping modes (StrippingBatch being the default mode) now also strip responses from SubResults improving consumed network bandwidth.
</p>
<ch_title>Documentation refresh</ch_title>
<p>A new style for website (responsive and more up to date) has been created by Felix Schumacher.
Documentations have been refreshed particularly:
<ul>
<li><ahref="./usermanual/build-ws-test-plan.html">Building a Webservice Test Plan</a></li>
<li>Since 2.13, Aggregate Graph, Summary Report and Aggregate Report now export percentages to %, before they exported the decimal value which differed from what was shown in GUI</li>
<li>Third party plugins may be impacted by fix of <bugzilla>57586</bugzilla>, ensure that your subclass of HttpTestSampleGui implements ItemListener if you relied on parent class doing so.</li>
<li>Report package has been removed, ApacheJMeter_report.jar is not generated anymore as a consequence, see <bugzilla>57269</bugzilla></li>
<li><bug>25430</bug>HTTP(S) Test Script Recorder : Make it populate HTTP Authorization Manager. Partly based on a patch from Dzmitry Kashlach (dzmitrykashlach at gmail.com)</li>
<li><bug>57381</bug>HTTP(S) Test Script Recorder should display an error if Target Controller references a Recording Controller and no Recording Controller exists. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
<li><bug>57488</bug>Performance : Improve SSLContext reset for Two-way SSL Authentication</li>
<li><bug>57565</bug>SamplerCreator : Add method to allow implementations to add children to created sampler</li>
<li><bug>57606</bug>HTTPSamplerBase#errorResult changes the sample label on exception </li>
<li><bug>57613</bug>HTTP Sampler : Added CalDAV verbs (REPORT, MKCALENDAR). Contributed by Richard Brigham (richard.brigham at teamaol.com)</li>
<li><bug>48799</bug>Add time to establish connection to available sample metrics. Implemented by Andrey Pokhilko (andrey at blazemeter.com) and contributed by BlazeMeter Ltd. and Pieter Ennes (apache.org at spam.ennes.nl)</li>
<li><bug>57500</bug>Introduce retry behavior for distributed testing. Implemented by Andrey Pokhilko and Dzimitry Kashlach and contributed by BlazeMeter Ltd.</li>
</ul>
<h3>Other samplers</h3>
<ul>
<li><bug>57322</bug>JDBC Test elements: add ResultHandler to deal with ResultSets(cursors) returned by callable statements. Contributed by Yngvi &THORN;&oacute;r Sigurj&oacute;nsson (blitzkopf at gmail.com)</li>
</ul>
<h3>Controllers</h3>
<ul>
<li><bug>57561</bug>Module controller UI : Replace combobox by tree. Contributed by Maciej Franek (maciej.franek at gmail.com)</li>
<li><bug>57648</bug>TestFragment should be disabled when created. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
</ul>
<h3>Listeners</h3>
<ul>
<li><bug>55932</bug>Create a Async BackendListener to allow easy plug of new listener (Graphite, JDBC, Console,...)</li>
<li><bug>57246</bug>BackendListener : Create a Graphite implementation</li>
<li><bug>57217</bug>Aggregate graph and Aggregate report improvements (3 configurable percentiles, same data in both, factor out code). Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
<li><bug>57537</bug>BackendListener : Allow implementations to drop samples</li>
</ul>
<h3>Timers, Assertions, Config, Pre- & Post-Processors</h3>
<ul>
</ul>
<h3>Functions</h3>
<ul>
<li><bug>54453</bug>Performance enhancements : Replace Random by ThreadLocalRandom in __Random function</li>
</ul>
<h3>I18N</h3>
<ul>
</ul>
<h3>General</h3>
<ul>
<li><bug>57518</bug>Icons for toolbar with several sizes</li>
<li><bug>57605</bug>When there is an error loading Test Plan, SaveService.loadTree returns null leading to NPE in callers</li>
<li><bug>57385</bug>Getting empty thread name in xml result for HTTP requests with "Follow Redirects" set. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
<li><bug>57579</bug>NullPointerException error is raised on main sample if "RETURN_NO_SAMPLE" is used (default) and "Use Cache-Control / Expires header..." is checked in HTTP Cache Manager</li>
</ul>
<h3>Other Samplers</h3>
<ul>
</ul>
<h3>Controllers</h3>
<ul>
<li><bug>57447</bug>Use only the user listed DNS Servers, when "use custom DNS resolver" option is enabled.</li>
</ul>
<h3>Listeners</h3>
<ul>
<li><bug>57262</bug>Aggregate Report, Aggregate Graph and Summary Report export : headers use keys instead of labels</li>
<li><bug>57346</bug>Summariser : The + (difference) reports show wrong elapsed time and throughput</li>
<li><bug>57449</bug>Distributed Testing: Stripped modes do not strip responses from SubResults (affects load tests that use Download of embedded resources). Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
<li><bug>57562</bug>View Results Tree CSS/JQuery Tester : Nothing happens when there is an error in syntax and an exception occurs in jmeter.log</li>
<li><bug>57514</bug>Aggregate Graph, Summary Report and Aggregate Report show wrong percentage reporting in saved file</li>
</ul>
<h3>Timers, Assertions, Config, Pre- & Post-Processors</h3>
<ul>
<li><bug>57607</bug>Constant Throughput Timer : Wrong throughput computed in shared modes due to rounding error </li>
</ul>
<!--
<h3>Functions</h3>
<ul>
</ul>
<h3>I18N</h3>
<ul>
</ul>
-->
<h3>General</h3>
<ul>
<li><bug>57365</bug>Selected LAF is not correctly setup due to call of UIManager.setLookAndFeel too late. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
<li><bug>57364</bug>Options < Look And Feel does not update all windows LAF. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
<li><bug>57394</bug>When constructing an instance with ClassTools#construct(String, int) the integer was ignored and the default constructor was used instead.</li>
<li><bug>57440</bug>OutOfMemoryError after introduction of JSyntaxTextArea in LoggerPanel due to disableUndo not being taken into account.</li>
<li><bug>57569</bug>FileServer.reserveFile - inconsistent behaviour when hasHeader is true</li>
<li><bug>57555</bug>Cannot use JMeter 2.12 as a maven dependency. Contributed by Pascal Schumacher (pascal.schumacher at t-systems.com)</li>
<li><bug>57608</bug>Fix start script compatibility with old Unix shells, e.g. on Solaris</li>
<li>Pascal Schumacher (pascal.schumacher at t-systems.com)</li>
<li>Maciej Franek (maciej.franek at gmail.com)</li>
<li>Richard Brigham (richard.brigham at teamaol.com)</li>
<li>Pieter Ennes (apache.org at spam.ennes.nl)</li>
</ul>
<br/>
We also thank bug reporters who helped us improve JMeter. <br/>
For this release we want to give special thanks to the following reporters for the clear reports and tests made after our fixes:
<ul>
<li>Chaitanya Bhatt (bhatt.chaitanya at gmail.com) for his thorough testing of new BackendListener and Graphite Client implementation.</li>
<li>Marcelo Jara (marcelojara at hotmail.com) for his clear report on <bugzilla>57607</bugzilla>.</li>
</ul>
Apologies if we have omitted anyone else.
</p>
<!-- =================== Known bugs =================== -->
<ch_section>Known bugs</ch_section>
<ul>
<li>The Once Only controller behaves correctly under a Thread Group or Loop Controller,
but otherwise its behaviour is not consistent (or clearly specified).</li>
<li>
The numbers that appear to the left of the green box are the number of active threads / total number of threads,
the total number of threads only applies to a locally run test, otherwise it will show 0 (see <bugzilla>55510</bugzilla>).
</li>
<li>
Note that there is a <ahref="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6396599 ">bug in Java</a>
on some Linux systems that manifests itself as the following error when running the test cases or JMeter itself:
<pre>
[java] WARNING: Couldn't flush user prefs:
java.util.prefs.BackingStoreException:
java.lang.IllegalArgumentException: Not supported: indent-number
</pre>
This does not affect JMeter operation. This issue is fixed since Java 7b05.
</li>
<li>
Note that under some windows systems you may have this WARNING:
<pre>
java.util.prefs.WindowsPreferences
WARNING: Could not open/create prefs root node Software\JavaSoft\Prefs at root 0
x80000002. Windows RegCreateKeyEx(...) returned error code 5.
</pre>
The fix is to run JMeter as Administrator, it will create the registry key for you, then you can restart JMeter as a normal user and you won't have the warning anymore.
</li>
<li>
With Java 1.6 and Gnome 3 on Linux systems, the JMeter menu may not work correctly (shift between mouse's click and the menu).
This is a known Java bug (see <bugzilla>54477</bugzilla>).
A workaround is to use a Java 7 runtime (OpenJDK or Oracle JDK).
</li>
<li>
With Oracle Java 7 and Mac Book Pro Retina Display, the JMeter GUI may look blurry.
This is a known Java bug, see Bug <ahref="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8000629">JDK-8000629</a>.
A workaround is to use a Java 7 update 40 runtime which fixes this issue.
</li>
<li>
You may encounter the following error: <i>java.security.cert.CertificateException: Certificates does not conform to algorithm constraints</i>
if you run a HTTPS request on a web site with a SSL certificate (itself or one of SSL certificates in its chain of trust) with a signature
algorithm using MD2 (like md2WithRSAEncryption) or with a SSL certificate with a size lower than 1024 bits.
This error is related to increased security in Java 7 version u16 (MD2) and version u40 (Certificate size lower than 1024 bits), and Java 8 too.
<br></br>
To allow you to perform your HTTPS request, you can downgrade the security of your Java installation by editing
the Java <b>jdk.certpath.disabledAlgorithms</b> property. Remove the MD2 value or the constraint on size, depending on your case.
<ch_title>Smarter Recording of Http Test Plans</ch_title>
<p>Test Script Recorder has been improved in many ways</p>
<ul>
<li>Better matching of Variables in Requests, making Test Script Recorder variabilize your sampler during recording more versatile</li>
<li>Ability to filter from View Results Tree the Samples that are excluded from recording, this lets you concentrate on recorded Samplers analysis and not bother with useless Sample Results
<li>Better defaults for recording, since this version Recorder will number created Samplers letting you find them much easily in View Results Tree.
Grouping of Samplers under Transaction Controller will be smarter making all requests emitted by a web page be children as new Transaction Controller</li>
</ul>
<ch_title>Support of Webdav requests</ch_title>
<p>You can now test against WebDav server using HttpClient4 Implementation of Http Request</p>
<ch_title>Better handling of embedded resources</ch_title>
<p>When download embedded resources is checked, JMeter now uses User Agent header to download or not resources embedded within conditionnal comments as per <ahref="http://msdn.microsoft.com/en-us/library/ms537512%28v=vs.85%29.aspx"target="_blank">About conditional comments</a>.</p>
<ch_title>Ability to customize Cache Manager (Browser cache simulation) handling of cached resources</ch_title>
<p>You can now configure the behaviour of JMeter when a resource is found in Cache, this can be controlled with <i>cache_manager.cached_resource_mode</i> property</p>
<p>A big improvement in performances of Functions has been made by lifting useless synchronization. It concerns all functions except __StringFromFile, __XPath and __BeanShell, see <bugzilla>57114</bugzilla></p>
<p>__jexl2 performances have been improved to avoid contention point, see <bugzilla>56708</bugzilla></p>
<ch_category>GUI Improvements</ch_category>
<ch_title>Undo/Redo support</ch_title>
<p>Undo / Redo has been introduced and allows user to undo/redo changes made on Test Plan Tree. This feature (ALPHA MODE) is disabled by default, to enable it set property <b>undo.history.size=25</b></p>
<p>Starting with this version, the last lines of JMeter's log file (jmeter.log) can be viewed directly in GUI by clicking on Warning icon in the upper right corner.
This will unfold the Log Viewer panel and show logs.</p>
<p>Now, "Open File dialog" uses last opened file folder as start folder, see <bugzilla>52707</bugzilla></p>
<!-- =================== Known bugs =================== -->
<ch_section>Known bugs</ch_section>
<ul>
<li>The Once Only controller behaves correctly under a Thread Group or Loop Controller,
but otherwise its behaviour is not consistent (or clearly specified).</li>
<li>
The numbers that appear to the left of the green box are the number of active threads / total number of threads,
the total number of threads only applies to a locally run test, otherwise it will show 0 (see <bugzilla>55510</bugzilla>).
</li>
<li>
Note that there is a <ahref="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6396599 ">bug in Java</a>
on some Linux systems that manifests itself as the following error when running the test cases or JMeter itself:
<pre>
[java] WARNING: Couldn't flush user prefs:
java.util.prefs.BackingStoreException:
java.lang.IllegalArgumentException: Not supported: indent-number
</pre>
This does not affect JMeter operation. This issue is fixed since Java 7b05.
</li>
<li>
Note that under some windows systems you may have this WARNING:
<pre>
java.util.prefs.WindowsPreferences
WARNING: Could not open/create prefs root node Software\JavaSoft\Prefs at root 0
x80000002. Windows RegCreateKeyEx(...) returned error code 5.
</pre>
The fix is to run JMeter as Administrator, it will create the registry key for you, then you can restart JMeter as a normal user and you won't have the warning anymore.
</li>
<li>
With Java 1.6 and Gnome 3 on Linux systems, the JMeter menu may not work correctly (shift between mouse's click and the menu).
This is a known Java bug (see <bugzilla>54477 </bugzilla>).
A workaround is to use a Java 7 runtime (OpenJDK or Oracle JDK).
</li>
<li>
With Oracle Java 7 and Mac Book Pro Retina Display, the JMeter GUI may look blurry.
This is a known Java bug, see Bug <ahref="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8000629">JDK-8000629</a>.
A workaround is to use a Java 7 update 40 runtime which fixes this issue.
</li>
<li>
You may encounter the following error: <i>java.security.cert.CertificateException: Certificates does not conform to algorithm constraints</i>
if you run a HTTPS request on a web site with a SSL certificate (itself or one of SSL certificates in its chain of trust) with a signature
algorithm using MD2 (like md2WithRSAEncryption) or with a SSL certificate with a size lower than 1024 bits.
This error is related to increased security in Java 7 version u16 (MD2) and version u40 (Certificate size lower than 1024 bits), and Java 8 too.
<br></br>
To allow you to perform your HTTPS request, you can downgrade the security of your Java installation by editing
the Java <b>jdk.certpath.disabledAlgorithms</b> property. Remove the MD2 value or the constraint on size, depending on your case.
<li>Since JMeter 2.12, active threads in all thread groups and active threads in current thread group are saved by default to CSV or XML results, see <bugzilla>57025</bugzilla>.
This is usually the expected behaviour as you want to have the number of running threads during the test. But if you want to revert to previous behaviour, set property <b>jmeter.save.saveservice.thread_counts=false</b></li>
<li>Since JMeter 2.12, Mail Reader Sampler will show 1 for number of samples instead of number of messages retrieved, see <bugzilla>56539</bugzilla></li>
<li>Since JMeter 2.12, when using Cache Manager, if resource is found in cache no SampleResult will be created, in previous version a SampleResult with empty content and 204 return code was returned, see <bugzilla>54778</bugzilla>.
You can choose between different ways to handle this case, see cache_manager.cached_resource_mode in jmeter.properties.</li>
<li>Since JMeter 2.12, Log Viewer will no more clear logs when closed and will have logs available even if closed. See <bugzilla>56920</bugzilla>. Read <ahref="./usermanual/hints_and_tips.html#debug_logging">Hints and Tips > Enabling Debug logging</a>
<li><bugzilla>55998</bugzilla> - HTTP recording – Replacing port value by user defined variable does not work</li>
<li><bugzilla>56178</bugzilla> - keytool error: Invalid escaped character in AVA: - some characters must be escaped</li>
<li><bugzilla>56222</bugzilla> - NPE if jmeter.httpclient.strict_rfc2616=true and location is not absolute</li>
<li><bugzilla>56263</bugzilla> - DefaultSamplerCreator should set BrowserCompatible Multipart true</li>
<li><bugzilla>56231</bugzilla> - Move redirect location processing from HC3/HC4 samplers to HTTPSamplerBase#followRedirects()</li>
<li><bugzilla>56207</bugzilla> - URLs get encoded on redirects in HC3.1 & HC4 samplers</li>
<li><bugzilla>56303</bugzilla> - The width of target controller's combo list should be set to the current panel size, not on label size of the controllers</li>
<li><bugzilla>54778</bugzilla> - HTTP Sampler should not return 204 when resource is found in Cache, make it configurable with new property cache_manager.cached_resource_mode</li>
</ul>
<h3>Other Samplers</h3>
<ul>
<li><bugzilla>55977</bugzilla> - JDBC pool keepalive flooding</li>
<li><bugzilla>55999</bugzilla> - Scroll bar on jms point-to-point sampler does not work when content exceeds display</li>
<li><bugzilla>56198</bugzilla> - JMSSampler : NullPointerException is thrown when JNDI underlying implementation of JMS provider does not comply with Context.getEnvironment contract</li>
<li><bugzilla>56428</bugzilla> - MailReaderSampler - should it use mail.pop3s.* properties?</li>
<li><bugzilla>46932</bugzilla> - Alias given in select statement is not used as column header in response data for a JDBC request.Based on report and analysis of Nicola Ambrosetti</li>
<li><bugzilla>56539</bugzilla> - Mail reader sampler: When Number of messages to retrieve is superior to 1, Number of samples should only show 1 not the number of messages retrieved</li>
<li><bugzilla>56809</bugzilla> - JMSSampler closes InitialContext too early. Contributed by Bradford Hovinen (hovinen at gmail.com)</li>
<li><bugzilla>56761</bugzilla> - JMeter tries to stop already stopped JMS connection and displays "The connection is closed"</li>
<li><bugzilla>57068</bugzilla> - No error thrown when negative duration is entered in Test Action</li>
<li><bugzilla>57078</bugzilla> - LagartoBasedHTMLParser fails to parse page that contains input with no type</li>
<li><bugzilla>57183</bugzilla> - JMSSampler: For input string: "" java.lang.NumberFormatException (for Expiration or Priority fields)</li>
</ul>
<h3>Controllers</h3>
<ul>
<li><bugzilla>56243</bugzilla> - Foreach works incorrectly with indexes on subsequent iterations </li>
<li><bugzilla>56276</bugzilla> - Loop controller becomes broken once loop count evaluates to zero </li>
<li><bugzilla>56160</bugzilla> - StackOverflowError when using WhileController within IfController</li>
<li><bugzilla>56811</bugzilla> - "Start Next Thread Loop" in Result Status Action Handler or on Thread Group and "Go to next Loop iteration" in Test Action behave incorrectly with TransactionController that has "Generate Parent Sampler" checked</li>
</ul>
<h3>Listeners</h3>
<ul>
<li><bugzilla>56706</bugzilla> - SampleResult#getResponseDataAsString() does not use encoding in response body impacting PostProcessors and ViewResultsTree. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
<li><bugzilla>57052</bugzilla> - ArithmeticException: / by zero when sampleCount is equal to 0</li>
</ul>
<h3>Timers, Assertions, Config, Pre- & Post-Processors</h3>
<ul>
<li><bugzilla>56162</bugzilla> - HTTP Cache Manager should not cache PUT/POST etc.</li>
<li><bugzilla>56227</bugzilla> - AssertionGUI : NPE in assertion on mouse selection</li>
<li><bugzilla>41319</bugzilla> - URLRewritingModifier : Allow Parameter value to be url encoded</li>
</ul>
<h3>Functions</h3>
<ul>
</ul>
<h3>I18N</h3>
<ul>
<li><bugzilla>56111</bugzilla> - "comments" in german translation is not correct</li>
</ul>
<h3>General</h3>
<ul>
<li><bugzilla>56059</bugzilla> - Older TestBeans incompatible with 2.11 when using TextAreaEditor</li>
<li><bugzilla>56080</bugzilla> - Conversion error com.thoughtworks.xstream.converters.ConversionException with Java 8 Early Access Build</li>
<li><bugzilla>56182</bugzilla> - Can't trigger bsh script using bshclient.jar; socket is closed unexpectedly </li>
<li><bugzilla>56360</bugzilla> - HashTree and ListedHashTree fail to compile with Java 8</li>
<li><bugzilla>56419</bugzilla> - JMeter silently fails to save results</li>
<li><bugzilla>56662</bugzilla> - Save as xml in a listener is not remembered</li>
<li><bugzilla>56367</bugzilla> - JMeter 2.11 on maven central triggers a not existing dependency rsyntaxtextarea 2.5.1, upgrade to 2.5.3</li>
<li><bugzilla>56743</bugzilla> - Wrong mailing list archives on mail2.xml. Contributed by Felix Schumacher (felix.schumacher at internetallee.de)</li>
<li><bugzilla>56763</bugzilla> - Removing the Oracle icons, not used by JMeter (and missing license)</li>
<li><bugzilla>54100</bugzilla> - Switching languages fails to preserve toolbar button states (enabled/disabled)</li>
<li><bugzilla>54648</bugzilla> - JMeter GUI on OS X crashes when using CMD+C (keyboard shortcut or UI menu entry) on an element from the tree</li>
<li><bugzilla>56962</bugzilla> - JMS GUIs should disable all fields affected by jndi.properties checkbox</li>
<li><bugzilla>57061</bugzilla> - Save as Test Fragment fails to clone deeply selected node. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
<li><bugzilla>57075</bugzilla> - BeanInfoSupport.MULTILINE attribute is not processed</li>
<li><bugzilla>57076</bugzilla> - BooleanPropertyEditor#getAsText() must return a value that is in getTags()</li>
<li><bugzilla>57088</bugzilla> - NPE in ResultCollector.testEnded</li>
<li><bugzilla>55959</bugzilla> - Improve error message when Test Script Recorder fails due to I/O problem</li>
<li><bugzilla>52013</bugzilla> - Test Script Recorder's Child View Results Tree does not take into account Test Script Recorder excluded/included URLs. Based on report and analysis of James Liang</li>
<li><bugzilla>56119</bugzilla> - File uploads fail every other attempt using timers. Enable idle timeouts for servers that don't send Keep-Alive headers.</li>
<li><bugzilla>56272</bugzilla> - MirrorServer should support query parameters for status and redirects</li>
<li><bugzilla>56772</bugzilla> - Handle IE Conditional comments when parsing embedded resources</li>
<li><bugzilla>57026</bugzilla> - HTTP(S) Test Script Recorder : Better default settings. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
<li><bugzilla>57107</bugzilla> - Patch proposal: Add DAV verbs to HTTP Sampler. Contributed by Philippe Jung (apache at famille-jung.fr)</li>
<li><bugzilla>56357</bugzilla> - Certificates does not conform to algorithm constraints: Adding a note to indicate how to remove of the Java installation these new security constraints</li>
</ul>
<h3>Other samplers</h3>
<ul>
<li><bugzilla>56033</bugzilla> - Add Connection timeout and Read timeout to SMTP Sampler</li>
<li><bugzilla>56429</bugzilla> - MailReaderSampler - no need to fetch all Messages if not all wanted</li>
<li><bugzilla>56510</bugzilla> - JMS Publisher/Point to Point: Add JMSPriority and JMSExpiration</li>
</ul>
<h3>Controllers</h3>
<ul>
<li><bugzilla>56728</bugzilla> - New Critical Section Controller to serialize blocks of a Test. Based partly on a patch contributed by Mikhail Epikhin(epihin-m at yandex.ru)</li>
<li><bugzilla>57145</bugzilla> - RandomController : Use ThreadLocalRandom instead of Random for better performances</li>
</ul>
<h3>Listeners</h3>
<ul>
<li><bugzilla>56228</bugzilla> - View Results Tree : Improve ergonomy by changing placement of Renderers and allowing custom ordering</li>
<li><bugzilla>56349</bugzilla> - "summary" is a bad name for a Generate Summary Results component, documentation clarified</li>
<li><bugzilla>56769</bugzilla> - Adds the ability for the Response Time Graph listener to save/restore format settings in/from the jmx file</li>
<li><bugzilla>57025</bugzilla> - SaveService : Better defaults, save thread counts by default</li>
</ul>
<h3>Timers, Assertions, Config, Pre- & Post-Processors</h3>
<ul>
<li><bugzilla>56691</bugzilla> - Synchronizing Timer : Add timeout on waiting</li>
<li><bugzilla>56701</bugzilla> - HTTP Authorization Manager/ Kerberos Authentication: add port to SPN when server port is neither 80 nor 443. Based on patches from Dan Haughey (dan.haughey at swinton.co.uk) and Felix Schumacher (felix.schumacher at internetallee.de)</li>
<li><bugzilla>56841</bugzilla> - New configuration element: DNS Cache Manager to improve the testing of CDN. Based on patch from Dzmitry Kashlach (dzmitrykashlach at gmail.com), and contributed by BlazeMeter Ltd.</li>
<li><bugzilla>52061</bugzilla> - Allow access to Request Headers in Regex Extractor. Based on patch from Dzmitry Kashlach (dzmitrykashlach at gmail.com), and contributed by BlazeMeter Ltd.</li>
</ul>
<h3>Functions</h3>
<ul>
<li><bugzilla>56708</bugzilla> - __jexl2 doesn't scale with multiple CPU cores. Based on analysis and patch contributed by Mikhail Epikhin(epihin-m at yandex.ru)</li>
<li><bugzilla>57114</bugzilla> - Performance : Functions that only have values as instance variable should not synchronize execute. Based on analysis by Ubik Load Pack support and Vladimir Sitnikov, patch contributed by Vladimir Sitnikov (sitnikov.vladimir at gmail.com)</li>
</ul>
<h3>I18N</h3>
<ul>
</ul>
<h3>General</h3>
<ul>
<li><bugzilla>21695</bugzilla> - Unix jmeter start script assumes it is on PATH, not a link</li>
<li><bugzilla>56292</bugzilla> - Add the check of the Java's version in startup files and disable some options when is Java v8 engine</li>
<li><bugzilla>56298</bugzilla> - JSR223 language display does not show which engine will be used</li>
<li><bugzilla>56455</bugzilla> - Batch files: drop support for non-NT Windows shell scripts</li>
<li><bugzilla>52707</bugzilla> - Make Open File dialog use last opened file folder as start folder. Based on patch from Dzmitry Kashlach (dzmitrykashlach at gmail.com), and contributed by BlazeMeter Ltd.</li>
<li><bugzilla>56807</bugzilla> - Ability to force flush of ResultCollector file. Contributed by Andrey Pohilko (apc4 at ya.ru)</li>
<li><bugzilla>56921</bugzilla> - Templates : Improve Recording template to ignore embedded resources case and URL parameters. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
<li><bugzilla>42248</bugzilla> - Undo-redo support on Test Plan tree modification. Developed by Andrey Pohilko (apc4 at ya.ru) and contributed by BlazeMeter Ltd. Additional contribution by Ubik Load Pack (support at ubikloadpack.com)</li>
<li><bugzilla>56920</bugzilla> - LogViewer : Make it receive all log events even when it is closed. Contributed by Ubik Load Pack (support at ubikloadpack.com)</li>
<li><bugzilla>57083</bugzilla> - simplified the CachedResourceMode enum. Contributed by Graham Russel (graham at ham1.co.uk)</li>
<li><bugzilla>57082</bugzilla> - ComboStringEditor : Added hashCode to an inner class which overwrote equals. Contributed by Graham Russel (graham at ham1.co.uk)</li>
<li><bugzilla>57081</bugzilla> - Updating checkstyle to only check for tabs in java, xml, xsd, dtd, htm, html and txt files (not images!). Contributed by Graham Russell (graham at ham1.co.uk)</li>
<li><bugzilla>56178</bugzilla> - Really replace backslashes in user name before generating proxy certificate. Contributed by Graham Russel (graham at ham1.co.uk)</li>
<li><bugzilla>57084</bugzilla> - Close socket after usage in BeanShellClient. Contributed by Graham Russel (graham at ham1.co.uk)</li>
</ul>
<ch_section>Non-functional changes</ch_section>
<ul>
<li><bugzilla>57117</bugzilla> - Increase the default cipher for HTTPS Test Script Recorder from SSLv3 to TLS</li>
<li>Updated to commons-lang3 3.3.2 (from 3.1)</li>
<li>Updated to commons-codec 1.9 (from 1.8)</li>
<li>Updated to commons-logging 1.2 (from 1.1.3)</li>
<li>Updated to tika 1.6 (from 1.4)</li>
<li>Updated to xercesImpl 2.11.0 (from 2.9.1)</li>
<li>Philippe Jung (apache at famille-jung.fr)</li>
<li>Vladimir Sitnikov (sitnikov.vladimir at gmail.com)</li>
</ul>
<br/>
We also thank bug reporters who helped us improve JMeter. <br/>
For this release we want to give special thanks to the following reporters for the clear reports and tests made after our fixes:
<ul>
<li>Oliver LLoyd (email at oliverlloyd.com) for his help on <bugzilla>56119</bugzilla></li>
<li>Vladimir Ryabtsev (greatvovan at gmail.com) for his help on <bugzilla>56243</bugzilla> and <bugzilla>56276</bugzilla></li>
<li>Adrian Speteanu (asp.adieu at gmail.com) and Matt Kilbride (matt.kilbride at gmail.com) for their feedback and tests on <bugzilla>54648</bugzilla></li>
<li>Shmuel Krakower (shmulikk at gmail.com) for his tests and reports on Undo/Redo feature</li>
<ch_title>HTTP(S) Test Script Recorder improvements</ch_title>
<p>
Following improvements have been made since major changes introduced in JMeter 2.10 on HTTP(S) Test Script Recorder:
<ul>
<li>Better detection of missing or invalid configuration of keytool utility</li>
<li>New system property keytool.directory (see system.properties) lets you configure directory containing keytool in case on non-standard installation</li>
</ul>
</p>
<ch_title>JMS Publisher/Point to Point : Add ability to set typed values in JMS header properties</ch_title>
<p>In the samplers JMS Publisher and JMS Point-to-Point, you can now set up the class of values for the JMS header properties. Previously only String was possible.</p>
<ch_title>Ability to choose the client alias for the cert key in JsseSslManager such that Mutual SSL auth testing can be made more flexible</ch_title>
<p>When testing client based certificate authentications you have now better control on certificate you use through a new field "Variable name holding certificate alias", this
field lets you select the certificate you want to send to server to authenticate. You can use a CSV Data Set as a holder for the variable value.</p>
<!-- =================== Known bugs =================== -->
<ch_section>Known bugs</ch_section>
<ul>
<li>The Once Only controller behaves correctly under a Thread Group or Loop Controller,
but otherwise its behaviour is not consistent (or clearly specified).</li>
<li>Listeners don't show iteration counts when a If Controller has a condition which is always false from the first iteration (see <bugzilla>52496</bugzilla>).
A workaround is to add a sampler at the same level as (or superior to) the If Controller.
For example a Test Action sampler with 0 wait time (which doesn't generate a sample),
or a Debug Sampler with all fields set to False (to reduce the sample size).
</li>
<li>
The numbers that appear to the left of the green box are the number of active threads / total number of threads,
the total number of threads only applies to a locally run test, otherwise it will show 0 (see <bugzilla>55510</bugzilla>).
</li>
<li>
Note that there is a <ahref="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6396599 ">bug in Java</a>
on some Linux systems that manifests itself as the following error when running the test cases or JMeter itself:
<pre>
[java] WARNING: Couldn't flush user prefs:
java.util.prefs.BackingStoreException:
java.lang.IllegalArgumentException: Not supported: indent-number
</pre>
This does not affect JMeter operation. This issue is fixed since Java 7b05.
</li>
<li>
With Java 1.6 and Gnome 3 on Linux systems, the JMeter menu may not work correctly (shift between mouse's click and the menu).
This is a known Java bug (see <bugzilla>54477 </bugzilla>).
A workaround is to use a Java 7 runtime (OpenJDK or Oracle JDK).
</li>
<li>
With Oracle Java 7 and Mac Book Pro Retina Display, the JMeter GUI may look blurry.
This is a known Java bug, see Bug <ahref="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8000629">JDK-8000629</a>.
A workaround is to use a Java 7 update 40 runtime which fixes this issue.
<li>When creating a new Transaction Controller, property "Include duration of timer and pre-post processors in generated sample" will be unchecked starting from version 2.11</li>
<li>In Non GUI mode, since 2.11 summariser is enabled with a 30 seconds frequency</li>
<li>JMeter is more lenient with redirect handling and relaxes on RFC2616 by allowing relative locations. See property "jmeter.httpclient.strict_rfc2616" in jmeter.properties to change this behaviour, see <bugzilla>55717</bugzilla></li>
<li>When creating a new Response Assertion, property "Pattern Matching Rules" now defaults to Substring starting from version 2.11</li>
<li><bugzilla>55815</bugzilla> - Proxy#getDomainMatch does not handle wildcards correctly</li>
<li><bugzilla>55717</bugzilla> - Bad handling of Redirect when URLs are in relative format by HttpClient4 and HttpClient3.1</li>
</ul>
<h3>Other Samplers</h3>
<ul>
<li><bugzilla>55685</bugzilla> - OS Sampler: timeout option don't save and restore correctly value and don't init correctly timeout</li>
</ul>
<h3>Controllers</h3>
<ul>
<li><bugzilla>55816</bugzilla> - Transaction Controller with "Include duration of timer..." unchecked does not ignore processing time of last child sampler</li>
</ul>
<h3>Listeners</h3>
<ul>
<li><bugzilla>55826</bugzilla> - Unsynchronised concurrent accesses to list in field RespTimeGraphVisualizer.internalList </li>
</ul>
<h3>Timers, Assertions, Config, Pre- & Post-Processors</h3>
<ul>
<li><bugzilla>55694</bugzilla> - Assertions and Extractors : Avoid NullPointerException when scope is variable and variable is missing</li>
<li><bugzilla>55871</bugzilla> - Wrong result with intSum() function when a space character is present before/after the number. Contributed by Milamber based on a proposal by James Liang.</li>
</ul>
<h3>I18N</h3>
<ul>
</ul>
<h3>General</h3>
<ul>
<li><bugzilla>55739</bugzilla> - Remote Test : Total threads in GUI mode shows invalid total number of threads</li>
<li><bugzilla>55589</bugzilla> - JMS Publisher/Point to Point : Add ability to set typed values in JMS header properties.</li>
</ul>
<h3>Controllers</h3>
<ul>
<li><bugzilla>55854</bugzilla> - Transaction Controller:Change default property "Include duration of timer..." for newly created element</li>
</ul>
<h3>Listeners</h3>
<ul>
<li><bugzilla>55610</bugzilla> - View Results Tree : Add an XPath Tester</li>
</ul>
<h3>Timers, Assertions, Config, Pre- & Post-Processors</h3>
<ul>
<li><bugzilla>55908</bugzilla> - Response assertion : Change Pattern Matching Rules default to Substring on creation for better performances</li>
<li><bugzilla>54977</bugzilla> - Ability to choose the client alias for the cert key in JsseSslManager such that Mutual SSL auth testing can be made more flexible. Contributed by UBIK Load Pack (support at ubikloadpack.com)</li>
</ul>
<h3>Functions</h3>
<ul>
</ul>
<h3>I18N</h3>
<ul>
</ul>
<h3>General</h3>
<ul>
<li><bugzilla>55693</bugzilla> - Add a "Save as Test Fragment" option</li>
<li><bugzilla>55753</bugzilla> - Improve FilePanel behaviour to start from the value set in Filename field if any. Contributed by UBIK Load Pack (support at ubikloadpack.com)</li>
<li><bugzilla>55756</bugzilla> - HTTP Mirror Server : Add ability to set Headers</li>
<li><bugzilla>55852</bugzilla> - Be more lenient in parsing when charset value is surrounded with single quotes</li>
<li><bugzilla>55857</bugzilla> - Performance : AbstractProperty should test for emptiness to avoid Exception throwing</li>
<li><bugzilla>55858</bugzilla> - Startup Performance : On Startup, BeanInfoSupport should test for key availability instead of throwing</li>
<li><bugzilla>55865</bugzilla> - Performance :Disable stale check by default in HttpClient 4 and 3.1</li>
<li><bugzilla>55512</bugzilla> - Summariser should be enabled by default in Non GUI mode</li>
</ul>
<ch_section>Non-functional changes</ch_section>
<ul>
<li>Updated to rsyntaxtextarea-2.5.1.jar (from 2.5.0)</li>
<li>Updated to jodd-core-3.4.9.jar from (3.4.8) and jodd-lagarto-3.4.9.jar (from 3.4.9)</li>
<li>Updated to jsoup-1.7.3.jar (from 1.7.2)</li>
<li>Updated to mail-1.5.0-b01 (from 1.4.4)</li>
<li>Updated to mongo-java-driver-2.11.3 (from 2.11.2)</li>
</ul>
<ch_section>Thanks</ch_section>
<p>We thank all contributors mentioned in bug and improvement sections above:
<ul>
<li>James Liang (jliang at andera.com)</li>
<li>UBIK Load Pack (support at ubikloadpack.com)</li>
</ul>
<br/>
We also thank bug reporters who helped us improve JMeter. <br/>
For this release we want to give special thanks to the following reporters for the clear reports and tests made after our fixes:
<ul>
<li>John Natsioulas (john_natsioulas at yahoo.com.au)</li>
<li>Antonio Gomes Rodrigues (ra0077 at gmail.com)</li>
<li>A Huge performance improvement has been made on High Throughput Tests (no pause), see <bugzilla>54777</bugzilla></li>
<li>An issue with unnecessary SSL Context reset has been fixed which improves performances of pure HTTP tests, see <bugzilla>55023</bugzilla></li>
<li>Important performance improvement in parsing of Embedded resource in HTML pages thanks to a switch to JODD/Lagarto HTML Parser, see <bugzilla>55632</bugzilla></li>
</ul>
</p>
<ch_title>New CSS/JQuery Tester in View Tree Results</ch_title>
<p>A new CSS/JQuery Tester in View Tree Results that makes CSS/JQuery Extractor a first class
citizen in JMeter, you can now test your expressions very easily</p>
The "HTTP Proxy Server" test element has been renamed as "HTTP(S) Test Script Recorder".
</note>
<ul>
<li>Better recording of HTTPS sites, embedded resources using subdomains will more easily be recorded when using JDK 7. See <bugzilla>55507</bugzilla>.
See updated documentation: <complinkname="HTTP(S) Test Script Recorder"/>
</li>
<li>Redirection are now more smartly detected by HTTP Proxy Server, see <bugzilla>55531</bugzilla></li>
<li>Many fixes on edge cases with HTTPS have been made, see <bugzilla>55502</bugzilla>, <bugzilla>55504</bugzilla>, <bugzilla>55506</bugzilla></li>
<li>Many encoding fixes have been made, see <bugzilla>54482</bugzilla>, <bugzilla>54142</bugzilla>, <bugzilla>54293</bugzilla></li>
</ul>
</p>
<ch_title>You can now load test MongoDB through new MongoDB Source Config</ch_title>
<ch_title>Continuous Integration is now eased by addition of a new flag that forces NON-GUI JVM to exit after test end</ch_title>
<p>See jmeter property:</p>
<code>jmeterengine.force.system.exit</code>
<p></p>
<ch_title>HttpSampler now allows DELETE Http Method to have a body (works for HC4 and HC31 implementations). This allows for example to test Elastic Search APIs</ch_title>
<ch_title>Syntax color has been added to scripts elements (BeanShell, BSF, and JSR223), MongoDB and JDBC elements making code much more readable and allowing UNDO/REDO through CTRL+Z/CTRL+Y</ch_title>
<ch_title>Better editors are now available for Test Elements with large text content, like HTTP Sampler, and JMS related Test Element providing line numbering and allowing UNDO/REDO through CTRL+Z/CTRL+Y</ch_title>
<ch_title>JMeter GUI can now be fully Internationalized, all remaining issues have been fixed</ch_title>
<h5>Currently French has all its labels translated. Other languages are partly translated, feel free to
contribute translations by reading <ahref="localising/index.html">Localisation (Translator's Guide)</a></h5>
<ch_title>Moving elements in Test plan has been improved in many ways</ch_title>
<h5>Drag and drop of elements in Test Plan tree is now much easier and possible on multiple nodes</h5>
<ch_title>JUnit Sampler gives now more details on configuration errors</ch_title>
<!-- =================== Known bugs =================== -->
<ch_section>Known bugs</ch_section>
<ul>
<li>The Once Only controller behaves correctly under a Thread Group or Loop Controller,
but otherwise its behaviour is not consistent (or clearly specified).</li>
<li>Listeners don't show iteration counts when a If Controller has a condition which is always false from the first iteration (see <bugzilla>52496</bugzilla>).
A workaround is to add a sampler at the same level as (or superior to) the If Controller.
For example a Test Action sampler with 0 wait time (which doesn't generate a sample),
or a Debug Sampler with all fields set to False (to reduce the sample size).
</li>
<li>Webservice sampler does not consider the HTTP response status to compute the status of a response, thus a response 500 containing a non empty body will be considered as successful, see <bugzilla>54006</bugzilla>.
To workaround this issue, ensure you always read the response and add a Response Assertion checking text inside the response.
</li>
<li>
The numbers that appear to the left of the green box are the number of active threads / total number of threads,
these only apply to a locally run test; they do not include any threads started on remote systems when using client-server mode, (see <bugzilla>54152</bugzilla>).
</li>
<li>
Note that there is a <ahref="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6396599 ">bug in Java</a>
on some Linux systems that manifests itself as the following error when running the test cases or JMeter itself:
<pre>
[java] WARNING: Couldn't flush user prefs:
java.util.prefs.BackingStoreException:
java.lang.IllegalArgumentException: Not supported: indent-number
</pre>
This does not affect JMeter operation. This issue is fixed since Java 7b05.
</li>
<li>
With Java 1.6 and Gnome 3 on Linux systems, the JMeter menu may not work correctly (shift between mouse's click and the menu).
This is a known Java bug (see <bugzilla>54477 </bugzilla>).
A workaround is to use a Java 7 runtime (OpenJDK or Oracle JDK).
</li>
<li>
With Oracle Java 7 and Mac Book Pro Retina Display, the JMeter GUI may look blurry.
This is a known Java bug, see Bug <ahref="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8000629">JDK-8000629</a>.
A workaround is to use a Java 7 update 40 runtime which fixes this issue.
<li><b>SMTP Sampler</b> now uses eml file subject if subject field is empty</li>
<li>With this version autoFlush has been turned off on PrintWriter in charge of writing test results.
This results in improved throughput for intensive tests but can result in more test data loss in case
of JMeter crash (extremely rare). To revert to previous behaviour set <code>jmeter.save.saveservice.autoflush</code> property to <code>true</code>.</li>
<li>
Shortcut for <b>Function Helper Dialog</b> is now <i>CTRL+SHIFT+F1 (CMD + SHIFT + F1 for Mac OS)</i>.
The original key sequence <i>(Ctrl+F1)</i> did not work in some locations (it is consumed by the Java Swing ToolTipManager).
It was therefore necessary to change the shortcut.
</li>
<li>
<b>Webservice (SOAP) Request</b> has been removed by default from GUI as Element is deprecated. (Use <b>HTTP Request</b>
with <i>Body Data</i>, see also the Template <i>Building a SOAP Webservice Test Plan</i>), if you need to show it, see property <code>not_in_menu</code> in <i>jmeter.properties</i>
</li>
<li>
<b>Transaction Controller</b> now sets <i>Response Code</i> of <i>Generated Parent Sampler</i>
(if <i>Generated Parent Sampler</i> is checked) to response code of first failing child in case of failure of one of the children, in previous versions <i>Response Code</i> was empty.
</li>
<li>
In previous versions, <b>IncludeController</b> could run Test Elements located inside a <b>Thread Group</b>, this behaviour (<i>which was not documented</i>)
ould result in weird behaviour, it has been removed in this version (see <bugzilla>55464</bugzilla>).
The correct way to include Test Elements is to use <b>Test Fragment</b> as stated in documentation of <b>Include Controller</b>.
</li>
<li>
The retry count for the HttpClient 3.1 and HttpClient 4.x samplers has been changed to <b>0</b>.
Previously the default was 1, which could cause unexpected additional traffic.
</li>
<li>Starting with this version, the <b>HTTP(S) Test Script Recorder</b> tries to detect when a sample is the result of a previous
redirect. If the current response is a redirect, JMeter will save the redirect URL. When the next request is received,
it is compared with the saved redirect URL and if there is a match, JMeter will disable the generated sample.
To revert to previous behaviour, set the property <code>proxy.redirect.disabling=false</code>
</li>
<li>Starting with this version, in <b>HTTP(S) Test Script Recorder</b> if Grouping is set to <i>Put each group in a new Transaction Controller</i>,
the Recorder will create <b>Transaction Controller</b> instances with <i>Include duration of timer and pre-post processors in generated sample</i> set
to false. This default value reflect more accurately response time.
</li>
<li><code>__escapeOroRegexpChars</code> function (which escapes ORO reserved characters) no longer trims the value (see <bugzilla>55328</bugzilla>)
</li>
<li>The <i>commons-lang-2.6.jar</i> has been removed from embedded libraries in <code>jmeter/lib</code> folder as it is not needed by JMeter at run-time
(it is only used by Apache Velocity for generating documentation).
If you use any plugin or third-party code that depends on it, you need to add it in <code>jmeter/lib</code> folder
<li><bugzilla>54627</bugzilla> - JMeter Proxy GUI: Type of sampler setting takes the whole screen when there are samplers with long names.</li>
<li><bugzilla>54629</bugzilla> - HTMLParser does not extract &lt;object&gt; tag urls.</li>
<li><bugzilla>55023</bugzilla> - SSL Context reuse feature (51380) adversely affects non-ssl request performance/throughput. based on analysis by Brent Cromarty (brent.cromarty at yahoo.ca)</li>
<li><bugzilla>55092</bugzilla> - Log message "WARN - jmeter.protocol.http.sampler.HTTPSamplerBase: Null URL detected (should not happen)" displayed when embedded resource URL is malformed.</li>
<li><bugzilla>55161</bugzilla> - Useless processing in SoapSampler.setPostHeaders. Contributed by Adrian Nistor (nistor1 at illinois.edu)</li>
<li><bugzilla>54482</bugzilla> - HC fails to follow redirects with non-encoded chars.</li>
<li><bugzilla>54142</bugzilla> - HTTP Proxy Server throws an exception when path contains "|" character.</li>
<li><bugzilla>55388</bugzilla> - HC3 does not allow IP Source field to override httpclient.localaddress.</li>
<li><bugzilla>55450</bugzilla> - HEAD redirects should remain as HEAD</li>
<li><bugzilla>55455</bugzilla> - HTTPS with HTTPClient4 ignores cps setting</li>
<li><bugzilla>55502</bugzilla> - Proxy generates empty http:/ entries when recording</li>
<li><bugzilla>55504</bugzilla> - Proxy incorrectly issues CONNECT requests when browser prompts for certificate override</li>
<li><bugzilla>55506</bugzilla> - Proxy should deliver failed requests to any configured Listeners</li>
<li><bugzilla>55545</bugzilla> - HTTP Proxy Server GUI should not allow both Follow and Auto redirect to be selected</li>
</ul>
<h3>Other Samplers</h3>
<ul>
<li><bugzilla>54913</bugzilla> - JMSPublisherGui incorrectly restores its state. Contributed by Benoit Wiart (benoit.wiart at gmail.com)</li>
<li><bugzilla>55027</bugzilla> - Test Action regression, duration value is not recorded (nightly build).</li>
<li><bugzilla>55163</bugzilla> - BeanShellTestElement fails to quote string when calling testStarted(String)/testEnded(String).</li>
<li><bugzilla>55349</bugzilla> - NativeCommand hangs if no input file is specified and the application requests input.</li>
<li><bugzilla>55462</bugzilla> - System Sampler should not change the sampler label if a sample fails</li>
</ul>
<h3>Controllers</h3>
<ul>
<li><bugzilla>54467</bugzilla> - Loop Controller: compute loop value only once per parent iteration.</li>
<li><bugzilla>54985</bugzilla> - Make Transaction Controller set Response Code of Generated Parent Sampler to response code of first failing child in case of failure of one of its children. Contributed by Mikhail Epikhin (epihin-m at yandex.ru)</li>
<li><bugzilla>54950</bugzilla> - ModuleController : Changes to referenced Module are not taken into account if changes occur after first run and referenced node is disabled.</li>
<li><bugzilla>55201</bugzilla> - ForEach controller excludes start index and includes end index (clarified documentation).</li>
<li><bugzilla>55334</bugzilla> - Adding Include Controller to test plan (made of Include Controllers) without saving TestPlan leads to included code not being taken into account until save.</li>
<li><bugzilla>55375</bugzilla> - StackOverflowError with ModuleController in Non-GUI mode if its name is the same as the target node.</li>
<li><bugzilla>55464</bugzilla> - Include Controller running included thread group</li>
</ul>
<h3>Listeners</h3>
<ul>
<li><bugzilla>54589</bugzilla> - View Results Tree have a lot of Garbage characters if html page uses double-byte charset.</li>
<li><bugzilla>54753</bugzilla> - StringIndexOutOfBoundsException at SampleResult.getSampleLabel() if key_on_threadname=false when using Statistical mode.</li>
<li><bugzilla>54685</bugzilla> - ArrayIndexOutOfBoundsException if "sample_variable" is set in client but not server.</li>
<li><bugzilla>55111</bugzilla> - ViewResultsTree: text not refitted if vertical scrollbar is required. Contributed by Milamber</li>
</ul>
<h3>Timers, Assertions, Config, Pre- & Post-Processors</h3>
<ul>
<li><bugzilla>54540</bugzilla> - "HTML Parameter Mask" are not marked deprecated in the IHM.</li>
<li><bugzilla>55437</bugzilla> - ComboStringEditor does not translate EDIT and UNDEFINED strings on language change</li>
<li><bugzilla>55501</bugzilla> - Incorrect encoding for French description of __char function. Contributed by Antonio Gomes Rodrigues (ra0077 at gmail.com)</li>
</ul>
<h3>General</h3>
<ul>
<li><bugzilla>54504</bugzilla> - Resource string not found: [clipboard_node_read_error].</li>
<li><bugzilla>54538</bugzilla> - GUI: context menu is too big.</li>
<li><bugzilla>54847</bugzilla> - Cut & Paste is broken with tree multi-selection. Contributed by Benoit Wiart (benoit.wiart at gmail.com)</li>
<li><bugzilla>54870</bugzilla> - Tree drag and drop may lose leaf nodes (affected nightly build). Contributed by Benoit Wiart (benoit.wiart at gmail.com)</li>
<li><bugzilla>55056</bugzilla> - wasted work in Data.append(). Contributed by Adrian Nistor (nistor1 at illinois.edu)</li>
<li><bugzilla>55129</bugzilla> - Change Javadoc generation per CVE-2013-1571, VU#225657.</li>
<li><bugzilla>55187</bugzilla> - Integer overflow when computing ONE_YEAR_MS in HTTP CacheManager.</li>
<li><bugzilla>55208</bugzilla> - JSR223 language entries are duplicated; fold to lower case.</li>
<li><bugzilla>55203</bugzilla> - TestBeanGUI - wrong language settings found.</li>
<li><bugzilla>55065</bugzilla> - Useless processing in Spline3.converge(). Contributed by Adrian Nistor (nistor1 at illinois.edu)</li>
<li><bugzilla>55064</bugzilla> - Useless processing in ReportTreeListener.isValidDragAction(). Contributed by Adrian Nistor (nistor1 at illinois.edu)</li>
<li><bugzilla>55242</bugzilla> - BeanShell Client jar throws exceptions after upgrading to 2.8.</li>
<li><bugzilla>55288</bugzilla> - JMeter should default to 0 retries for HTTP requests.</li>
<li><bugzilla>55405</bugzilla> - ant download_jars task fails if lib/api or lib/doc are missing. Contributed by Antonio Gomes Rodrigues.</li>
<li><bugzilla>55427</bugzilla> - TestBeanHelper should ignore properties not supported by GenericTestBeanCustomizer</li>
<li><bugzilla>55459</bugzilla> - Elements using ComboStringEditor lose the input value if user selects another Test Element</li>
<li><bugzilla>54152</bugzilla> - In distributed testing : activeThreads always show 0 in GUI and Summariser</li>
<li><bugzilla>55509</bugzilla> - Allow Plugins to be notified of remote thread number progression</li>
<li><bugzilla>55572</bugzilla> - Detail popup of parameter does not show a Scrollbar when content exceeds display</li>
<li><bugzilla>55580</bugzilla> - Help pane does not scroll to start for <a href="#"> links</li>
<li><bugzilla>55600</bugzilla> - JSyntaxTextArea : Strange behaviour on first undo</li>
<li><bugzilla>55655</bugzilla> - NullPointerException when Remote stopping /shutdown all if one engine did not start correctly. Contributed by UBIK Load Pack (support at ubikloadpack.com)</li>
<li><bugzilla>55657</bugzilla> - Remote and Local Stop/Shutdown buttons state does not take into account local / remote status </li>
<li>HTTP Request: Small user interaction improvements in Row parameter Detail Box. Contributed by Milamber</li>
<li><bugzilla>55255</bugzilla> - Allow Body in HTTP DELETE method to support API that use it (like ElasticSearch).</li>
<li><bugzilla>53480</bugzilla> - Add Kerberos support to Http Sampler (HttpClient4). Based on patch by Felix Schumacher (felix.schumacher at internetallee.de)</li>
<li><bugzilla>54874</bugzilla> - Support device in addition to source IP address. Based on patch by Dan Fruehauf (malkodan at gmail.com)</li>
<li><bugzilla>55488</bugzilla> - Add .ico and .woff file extension to default suggested exclusions in proxy recorder. Contributed by Antonio Gomes Rodrigues</li>
<li><bugzilla>55525</bugzilla> - Proxy should support alias for keyserver entry</li>
<li><bugzilla>55531</bugzilla> - Proxy recording and redirects. Added code to disable redirected samples.</li>
<li><bugzilla>55507</bugzilla> - Proxy SSL recording does not handle external embedded resources well</li>
<li><bugzilla>55632</bugzilla> - Have a new implementation of htmlParser for embedded resources parsing with better performances</li>
<li><bugzilla>55653</bugzilla> - HTTP(S) Test Script Recorder should set TransactionController property "Include duration of timer and pre-post processors in generated sample" to false</li>
</ul>
<h3>Other samplers</h3>
<ul>
<li><bugzilla>54788</bugzilla> - JMS Point-to-Point Sampler - GUI enhancements to increase readability and ease of use. Contributed by Bruno Antunes (b.m.antunes at gmail.com)</li>
<li><bugzilla>54798</bugzilla> - Using subject from EML-file for SMTP Sampler. Contributed by Mikhail Epikhin (epihin-m at yandex.ru)</li>
<li><bugzilla>54759</bugzilla> - SSLPeerUnverifiedException using HTTPS , property documented.</li>
<li><bugzilla>54896</bugzilla> - JUnit sampler gives only "failed to create an instance of the class" message with constructor problems.</li>
<li><bugzilla>55084</bugzilla> - Add timeout support for JDBC Request. Contributed by Mikhail Epikhin (epihin-m at yandex.ru)</li>
<li><bugzilla>55403</bugzilla> - Enhancement to OS sampler: Support for timeout</li>
<li><bugzilla>55518</bugzilla> - Add ability to limit number of cached PreparedStatements per connection when "Prepared Select Statement", "Prepared Update Statement" or "Callable Statement" query type is selected</li>
</ul>
<h3>Controllers</h3>
<ul>
<li><bugzilla>54271</bugzilla> - Module Controller breaks if test plan is renamed.</li>
</ul>
<h3>Listeners</h3>
<ul>
<li><bugzilla>54532</bugzilla> - Improve Response Time Graph Y axis scale with huge values or small values (&lt; 1000ms). Add a new field to define increment scale. Contributed by Milamber based on patch by Luca Maragnani (luca.maragnani at gmail.com)</li>
<li><bugzilla>54576</bugzilla> - View Results Tree : Add a CSS/JQuery Tester.</li>
<li><bugzilla>54777</bugzilla> - Improve Performance of default ResultCollector. Based on patch by Mikhail Epikhin (epihin-m at yandex.ru)</li>
<li><bugzilla>55389</bugzilla> - Show IP source address in request data</li>
</ul>
<h3>Timers, Assertions, Config, Pre- & Post-Processors</h3>
<ul>
<li><bugzilla>54789</bugzilla> - XPath Assertion - GUI enhancements to increase readability and ease of use.</li>
</ul>
<h3>Functions</h3>
<ul>
<li><bugzilla>54991</bugzilla> - Add functions to encode/decode URL encoded chars (__urlencode and __urldecode). Contributed by Milamber.</li>
</ul>
<h3>I18N</h3>
<ul>
<li><bugzilla>55241</bugzilla> - Need GUI Editor to process fields which are based on Enums with localised display strings</li>
<li><bugzilla>55440</bugzilla> - ComboStringEditor should allow tags to be language dependent</li>
<li><bugzilla>54584</bugzilla> - MongoDB plugin. Based on patch by Jan Paul Ettles (janpaulettles at gmail.com)</li>
<li><bugzilla>54669</bugzilla> - Add flag forcing non-GUI JVM to exit after test. Contributed by Scott Emmons</li>
<li><bugzilla>42428</bugzilla> - Workbench not saved with Test Plan. Contributed by Dzmitry Kashlach (dzmitrykashlach at gmail.com)</li>
<li><bugzilla>54825</bugzilla> - Add shortcuts to move elements in the tree. Contributed by Benoit Wiart (benoit.wiart at gmail.com)</li>
<li><bugzilla>54834</bugzilla> - Improve Drag & Drop in the jmeter tree. Contributed by Benoit Wiart (benoit.wiart at gmail.com)</li>
<li><bugzilla>54839</bugzilla> - Set the application name on Mac. Contributed by Benoit Wiart (benoit.wiart at gmail.com)</li>
<li><bugzilla>54841</bugzilla> - Correctly handle the quit shortcut on Mac Os (CMD-Q). Contributed by Benoit Wiart (benoit.wiart at gmail.com)</li>
<li><bugzilla>54844</bugzilla> - Set the application icon on Mac Os. Contributed by Benoit Wiart (benoit.wiart at gmail.com)</li>
<li><bugzilla>54864</bugzilla> - Enable multi selection drag & drop in the tree without having to start dragging before releasing Shift or Control. Contributed by Benoit Wiart (benoit.wiart at gmail.com)</li>
<li><bugzilla>54945</bugzilla> - Add Shutdown Hook to enable trapping kill or CTRL+C signals.</li>
<li><bugzilla>54990</bugzilla> - Download large files avoiding outOfMemory.</li>
<li><bugzilla>55085</bugzilla> - UX Improvement : Ability to create New Test Plan from Templates. Contributed by UBIK Load Pack (support at ubikloadpack.com)</li>
<li><bugzilla>55172</bugzilla> - Provide plugins a way to add Top Menu and menu items.</li>
<li><bugzilla>55202</bugzilla> - Add syntax color for scripts elements (BeanShell, BSF, and JSR223) and JDBC elements with RSyntaxTextArea. Contributed by Milamber based on patch by Marko Vlahovic (vlahovic74 at gmail.com)</li>
<li><bugzilla>55175</bugzilla> - HTTPHC4Impl refactoring to allow better inheritance.</li>
<li><bugzilla>55236</bugzilla> - Templates - provide button to reload template details.</li>
<li><bugzilla>55237</bugzilla> - Template system should support relative fileName entries.</li>
<li><bugzilla>55423</bugzilla> - BatchSampleSender: Reduce locking granularity by moving listener.processBatch outside of synchronized block</li>
<li><bugzilla>55424</bugzilla> - Add Stripping to existing SampleSenders</li>
<li><bugzilla>55451</bugzilla> - Test Element GUI with JSyntaxTextArea scroll down when text content is long enough to add a Scrollbar</li>
<li><bugzilla>55513</bugzilla> - StreamCopier cannot be used with System.err or System.out as it closes the output stream</li>
<li><bugzilla>55514</bugzilla> - SystemCommand should support arbitrary input and output streams</li>
<li><bugzilla>55515</bugzilla> - SystemCommand should support chaining of commands</li>
<li><bugzilla>55606</bugzilla> - Use JSyntaxtTextArea for Http Request, JMS Test Elements</li>
<li><bugzilla>55651</bugzilla> - Change JMeter application icon to Apache plume icon</li>
</ul>
<ch_section>Non-functional changes</ch_section>
<ul>
<li>Updated to jsoup-1.7.2</li>
<li><bugzilla>54776</bugzilla> - Update the dependency on Bouncy Castle to 1.48. Contributed by Emmanuel Bourg (ebourg at apache.org)</li>
<li>Updated to HttpComponents Client 4.2.6 (from 4.2.3)</li>
<li>Updated to HttpComponents Core 4.2.5 (from 4.2.3)</li>
<li>Updated to commons-codec 1.8 (from 1.6)</li>
<li>Updated to commons-io 2.4 (from 2.2)</li>
<li>Updated to commons-logging 1.1.3 (from 1.1.1)</li>
<li>Updated to commons-net 3.3 (from 3.1)</li>
<li>Updated to jdom-1.1.3 (from 1.1.2)</li>
<li>Updated to jodd-lagarto and jodd-core 3.4.8 (from 3.4.1)</li>
<li>Updated to junit 4.11 (from 4.10)</li>
<li>Updated to slf4j-api 1.7.5 (from 1.7.2)</li>
<li>Updated to tika 1.4 (from 1.3)</li>
<li>Updated to xmlgraphics-commons 1.5 (from 1.3.1)</li>
<li>Updated to xstream 1.4.4 (from 1.4.2)</li>
<li>Updated to BouncyCastle 1.49 (from 1.48)</li>
<li><bugzilla>54912</bugzilla> - JMeterTreeListener should use constants. Contributed by Benoit Wiart (benoit.wiart at gmail.com)</li>
<li><bugzilla>54903</bugzilla> - Remove the dependency on the Activation Framework. Contributed by Emmanuel Bourg (ebourg at apache.org)</li>
<li>Moved commons-lang (2.6) to lib/doc as it's only needed by Velocity.</li>
<li>Re-organised and simplified NOTICE and LICENSE files.</li>
<li><bugzilla>55411</bugzilla> - NativeCommand could be useful elsewhere. Copied code to o.a.jorphan.exec.</li>
<li><bugzilla>55435</bugzilla> - ComboStringEditor could be simplified to make most settings final</li>
<li><bugzilla>55436</bugzilla> - ComboStringEditor should implement ClearGui</li>
<li><bugzilla>55463</bugzilla> - Component.requestFocus() is discouraged; use requestFocusInWindow() instead</li>
<li><bugzilla>55486</bugzilla> - New JMeter Logo. Contributed by UBIK Load Pack (support at ubikloadpack.com)</li>
<li><bugzilla>55548</bugzilla> - Tidy up use of TestElement.ENABLED; use TestElement.isEnabled()/setEnabled() throughout</li>
<li><bugzilla>55617</bugzilla> - Improvements to jorphan collection. Contributed by Benoit Wiart (benoit.wiart at gmail.com)</li>
<li><bugzilla>55623</bugzilla> - Invalid/unexpected configuration values should not be silently ignored</li>
<li><bugzilla>55626</bugzilla> - Rename HTTP Proxy Server as HTTP(S) Test Script Recorder</li>
<p>* SamplerCreator interface has been enriched to meet new requirements for plug-in providers</p>
<p>* It is now possible to create binary sampler for x-www-form-urlencoded POST request by
modifying <i>proxy.binary.types</i> property to add application/x-www-form-urlencoded </p>
<p>* Improved timestamp format auto-detection when reading CSV files</p>
<!-- =================== Known bugs =================== -->
<h2>Known bugs</h2>
<p>The Once Only controller behaves correctly under a Thread Group or Loop Controller,
but otherwise its behaviour is not consistent (or clearly specified).</p>
<p>Listeners don't show iteration counts when a If Controller has a condition which is always false from the first iteration (see <bugzilla>52496</bugzilla>).
A workaround is to add a sampler at the same level as (or superior to) the If Controller.
For example a Test Action sampler with 0 wait time (which doesn't generate a sample),
or a Debug Sampler with all fields set to False (to reduce the sample size).
</p>
<p>Webservice sampler does not consider the HTTP response status to compute the status of a response, thus a response 500 containing a non empty body will be considered as successful, see <bugzilla>54006</bugzilla>.
To workaround this issue, ensure you always read the response and add a Response Assertion checking text inside the response.
</p>
<p>
Changing language can break part of the configuration of the following elements (see <bugzilla>53679</bugzilla>):
<ul>
<li>CSV Data Set Config (sharing mode will be lost)</li>
<li>Constant Throughput Timer (Calculate throughput based on will be lost)</li>
</ul>
</p>
<p>
The numbers that appear to the left of the green box are the number of active threads / total number of threads,
these only apply to a locally run test; they do not include any threads started on remote systems when using client-server mode, (see <bugzilla>54152</bugzilla>).
</p>
<p>
Note that there is a bug in Java on some Linux systems that manifests
itself as the following error when running the test cases or JMeter itself:
<pre>
[java] WARNING: Couldn't flush user prefs:
java.util.prefs.BackingStoreException:
java.lang.IllegalArgumentException: Not supported: indent-number
and right angle bracket (>) in search filter tag in XML response data</li>
<li><bugzilla>53995</bugzilla> - AbstractJDBCTestElement shares PreparedStatement between multi-threads</li>
<li><bugzilla>54119</bugzilla> - HTTP 307 response is not redirected</li>
<li><bugzilla>54326</bugzilla> - AjpSampler send file in post throws FileNotFoundException</li>
<li><bugzilla>54331</bugzilla> - AjpSampler throws null pointer on GET request that are protected</li>
</ul>
<h3>Controllers</h3>
<ul>
</ul>
<h3>Listeners</h3>
<ul>
<li><bugzilla>54088</bugzilla> - The type video/f4m is text, not binary</li>
<li><bugzilla>54166</bugzilla> - ViewResultsTree could not render the HTML response: handle failure to parse HTML</li>
<li><bugzilla>54287</bugzilla> - Incorrect Timestamp in Response Time Graph when using a date with time in Date format field</li>
<li><bugzilla>54451</bugzilla> - Response Time Graph reports wrong times when the are many samples for same time</li>
<li><bugzilla>54459</bugzilla> - CSVSaveService does not handle date parsing very well</li>
</ul>
<h3>Timers, Assertions, Config, Pre- & Post-Processors</h3>
<ul>
<li><bugzilla>54058</bugzilla> - In HTTP Request Defaults, the value of field "Embedded URLs must match: is not saved if the check box "Retrieve All Embedded Resources" is not checked.</li>
<li><bugzilla>54375</bugzilla> - Regular Expression Extractor : When regex syntax is wrong, post processing is stopped</li>
</ul>
<h3>Functions</h3>
<ul>
</ul>
<h3>I18N</h3>
<ul>
</ul>
<h3>General</h3>
<ul>
<li><bugzilla>53975</bugzilla> - Variables replacement doesn't work with option "Delay thread creation until needed"</li>
<li><bugzilla>54055</bugzilla> - View Results tree: = signs are stripped from parameter values at HTTP tab</li>
<li><bugzilla>54129</bugzilla> - Search Feature does not find text although existing in elements </li>
<li><bugzilla>54023</bugzilla> - Unable to start JMeter from a root directory and if the full path of JMeter installation contains one or more spaces (Unix/linux)</li>
<li><bugzilla>54172</bugzilla> - Duplicate shortcut key not working and CTRL+C / CTRL+V / CTRL+V do not cancel default event</li>
<li><bugzilla>54057</bugzilla> - Proxy option to set user and password at startup (-u and -a) not working with HTTPClient 4</li>
<li><bugzilla>54267</bugzilla> - Start Next Thread Loop setting doesn't work in custom thread groups</li>
<li><bugzilla>54413</bugzilla> - DataStrippingSampleSender returns 0 for number of bytes of any response</li>
<li><bugzilla>54185</bugzilla> - Allow query strings in paths that start with HTTP or HTTPS</li>
</ul>
<h3>Other samplers</h3>
<ul>
<li><bugzilla>54004</bugzilla> - Webservice Sampler : Allow adding headers to request with Header Manager</li>
<li><bugzilla>54106</bugzilla> - JSR223TestElement should check for file existence when a filename is set instead of using Text Area content </li>
<li><bugzilla>54107</bugzilla> - JSR223TestElement : Enable compilation and caching of Script Text</li>
<li><bugzilla>54109</bugzilla> - JSR223TestElement : SampleResult properties should be set before entering script to allow user setting different code</li>
<li><bugzilla>54230</bugzilla> - TCP Sampler, additions of "Close Connection", "SO_LINGER" and "End of line(EOL) byte value" options</li>
<li><bugzilla>54182</bugzilla> - Support sending of ByteMessage for JMS Publisher.</li>
</ul>
<h3>Controllers</h3>
<ul>
<li><bugzilla>54131</bugzilla> - ForEach Controller : Add start and end index for looping over variables</li>
<li><bugzilla>54257</bugzilla> - Enhance SamplerCreator interface to meet new requirements</li>
<li><bugzilla>54258</bugzilla> - Proxy : Use Raw Post Body when Sampler has one unnamed argument, useful for Samplers using POST method by of type JSON, XML, GWT body</li>
<li><bugzilla>54268</bugzilla> - Improve CPU and memory usage</li>
<li><bugzilla>54376</bugzilla> - ScopePanel : Allow configuring more precisely scopes</li>
<li><bugzilla>54412</bugzilla> - Changing JMeter defaults to ensure better performances by default</li>
<li><bugzilla>54414</bugzilla> - Remote Test should not start if one of the engines fails to start correctly</li>
</ul>
<h2>Non-functional changes</h2>
<ul>
<li><bugzilla>53956</bugzilla> - Add ability to paste (a list of values) from clipboard for Header Manager</li>
<!-- =================== Known bugs =================== -->
<h2>Known bugs</h2>
<p>The Once Only controller behaves correctly under a Thread Group or Loop Controller,
but otherwise its behaviour is not consistent (or clearly specified).</p>
<p>Listeners don't show iteration counts when a If Controller has a condition which is always false from the first iteration (see <bugzilla>52496</bugzilla>).
A workaround is to add a sampler at the same level as (or superior to) the If Controller.
For example a Test Action sampler with 0 wait time (which doesn't generate a sample),
or a Debug Sampler with all fields set to False (to reduce the sample size).
</p>
<p>
Changing language can break part of the configuration of the following elements (see <bugzilla>53679</bugzilla>):
<ul>
<li>CSV Data Set Config (sharing mode will be lost)</li>
<li>Constant Throughput Timer (Calculate throughput based on will be lost)</li>
</ul>
</p>
<p>
Note that there is a bug in Java on some Linux systems that manifests
itself as the following error when running the test cases or JMeter itself:
<pre>
[java] WARNING: Couldn't flush user prefs:
java.util.prefs.BackingStoreException:
java.lang.IllegalArgumentException: Not supported: indent-number
When using CacheManager, JMeter now caches responses for GET queries provided header Cache-Control is different from "no-cache" as described in specification.
Furthermore it doesn't put anymore in Cache deprecated entries for "no-cache" responses. See <bugzilla>53521</bugzilla> and <bugzilla>53522</bugzilla>
</p>
<p>
A major change has occured on JSR223 Test Elements, previously variables set up before script execution where stored in ScriptEngineManager which was created once per execution,
now ScriptEngineManager is a singleton shared by all JSR223 elements and only ScriptEngine is created once per execution, variables set up before script execution are now stored
in Bindings created on each execution, see <bugzilla>53365</bugzilla>.
</p>
<p>
JSR223 Test Elements using Script file are now Compiled if ScriptEngine supports this feature, see <bugzilla>53520</bugzilla>.
</p>
<p>
Shortcut for Function Helper Dialog is now CTRL+F1 (CMD + F1 for Mac OS), CTRL+F (CMD+F1 for Mac OS) now opens Search Dialog.
</p>
<p>
By default, the TestCompiler now stores details of which pairs it has seen in Controller instances rather than in a static Set.
[<bugzilla>53796</bugzilla>]
This gives much better memory behaviour for delayed start test plans, as memory used is proportional to the number of concurrent threads.
With the static Set memory usage was proportional to the total thread count.
This change is very unlikely to cause a problem.
The original behaviour can be restored by setting the property <code>TestCompiler.useStaticSet=true</code>
</p>
<p>
HTTPS Spoofing options have been removed from Proxy as HTTPS recording is directly available since JMeter 2.4.
<li><bugzilla>53521</bugzilla> - Cache Manager should cache content with Cache-control=private</li>
<li><bugzilla>53522</bugzilla> - Cache Manager should not store at all response with header "no-cache" and store other types of Cache-Control having max-age value</li>
<li><bugzilla>53838</bugzilla> - Pressing "Stop" does not interrupt the TCP sampler</li>
<li><bugzilla>53911</bugzilla> - JmeterKeystore does not allow for key down the list of certificate</li>
</ul>
<h3>Other Samplers</h3>
<ul>
<li><bugzilla>53348</bugzilla> - JMeter JMS Point-to-Point Request-Response sampler doesn't work when Request-queue and Receive-queue are different</li>
<li><bugzilla>53357</bugzilla> - JMS Point to Point reports too high response times in Request Response Mode</li>
<li><bugzilla>53440</bugzilla> - SSL connection leads to ArrayStoreException on JDK 6 with some KeyManagerFactory SPI</li>
<li><bugzilla>53715</bugzilla> - JMeter does not load WSDL</li>
</ul>
<h3>Controllers</h3>
<ul>
</ul>
<h3>Listeners</h3>
<ul>
<li><bugzilla>53742</bugzilla> - When jmeter.save.saveservice.sample_count is set to true, elapsed time read by listener is always equal to 0</li>
<li><bugzilla>53774</bugzilla> - RequestViewRaw does not show headers unless samplerData is non-null</li>
<li><bugzilla>53802</bugzilla> - IdleTime values are not saved to CSV log</li>
<li><bugzilla>53874</bugzilla> - View Results Tree : If some parameter containing special characters like % is not encoded, RequestViewHTTP fails with java.lang.IllegalArgumentException: URLDecoder: Illegal hex characters in escape (%) pattern and Response is not displayed</li>
</ul>
<h3>Timers, Assertions, Config, Pre- & Post-Processors</h3>
<ul>
<li><bugzilla>51512</bugzilla> - Cookies aren't inserted into HTTP request with IPv6 Host header</li>
</ul>
<h3>Functions</h3>
<ul>
</ul>
<h3>I18N</h3>
<ul>
</ul>
<h3>General</h3>
<ul>
<li><bugzilla>53365</bugzilla> - JSR223TestElement should cache ScriptEngineManager</li>
<li><bugzilla>53520</bugzilla> - JSR223 Elements : Use Compilable interface to improve performances on File scripts</li>
<li><bugzilla>53501</bugzilla> - Synchronization timer blocks test end.</li>
<li><bugzilla>53750</bugzilla> - TestCompiler saves unnecessary entries in pairing collection</li>
<li><bugzilla>53841</bugzilla> - CSVSaveService reads file using JVM default file encoding instead of using the one configured in saveservice.properties</li>
<li><bugzilla>53953</bugzilla> New: Typo in monitor test plan documentation</li>
<li><bugzilla>53675</bugzilla> - Add PATCH verb to HTTP sampler</li>
<li><bugzilla>53931</bugzilla> - Define HTTPClient 4 for the default HTTP Request (and Proxy element to generate the HTTP requests). Before the default, it was the HTTP Java Sampler</li>
<li><bugzilla>53934</bugzilla> - Removes HTTPS spoofing options in JMeter HTTP Proxy Server. Since JMeter 2.4, the HTTPS protocol is directly supported by the proxy</li>
</ul>
<h3>Other samplers</h3>
<ul>
<li><bugzilla>55310</bugzilla> - TestAction should implement Interruptible</li>
<li><bugzilla>53318</bugzilla> - Add Embedded URL Filter to HTTP Request Defaults Control </li>
<li><bugzilla>53782</bugzilla> - Enhance JavaSampler handling of JavaSamplerClient cleanup to use less memory</li>
<li><bugzilla>53168</bugzilla> - OS Process - allow specification of stdout/stderr/stdin</li>
<li><bugzilla>53844</bugzilla> - JDBC related elements should check class of Variable Name supposed to contain JDBC Connection Configuration to avoid ClassCastException </li>
</ul>
<h3>Controllers</h3>
<ul>
<li><bugzilla>53671</bugzilla> - tearDown thread group to run even if shutdown test happens</li>
</ul>
<h3>Listeners</h3>
<ul>
<li><bugzilla>53566</bugzilla> - Don't log partial responses to the jmeter log</li>
<li><bugzilla>53716</bugzilla> - Small improvements in aggregate graph: legend at left or right is now on 1 column (instead of 1 large line), no border to the reference's square color, reduce width on some fields</li>
<li><bugzilla>53718</bugzilla> - Add a new visualizer 'Response Time Graph' to draw a line graph showing the evolution of response time for a test</li>
<li><bugzilla>53738</bugzilla> - Keep track of number of threads started and finished</li>
<li><bugzilla>53753</bugzilla> - Summariser: no point displaying fractional time in most cases</li>
<li><bugzilla>53749</bugzilla> - TestListener interface could perhaps be split up.
This should reduce per-thread memory requirements and processing,
as only test elements that actually use testIterationStart functionality now need to be handled.</li>
<li><bugzilla>53941</bugzilla> - Add latency to View Result table listener</li>
</ul>
<h3>Timers, Assertions, Config, Pre- & Post-Processors</h3>
<ul>
<li><bugzilla>53755</bugzilla> - Adding a HttpClient 4 cookie implementation in JMeter.
Cookie Manager has now the default HC3.1 implementation and a new choice HC4 implementation (compliant with IPv6 address)</li>
</ul>
<h3>Functions</h3>
<ul>
<li><bugzilla>51527</bugzilla> - __time() function : add another option to __time() to provide *seconds* since epoch</li>
</ul>
<h3>I18N</h3>
<ul>
</ul>
<h3>General</h3>
<ul>
<li><bugzilla>53364</bugzilla> - Sort list of Functions in Function Helper Dialog</li>
<li><bugzilla>53418</bugzilla> - New Option "Delay thread creation until needed" that will create and start threads when needed instead of creating them on Test startup</li>
<li><bugzilla>42245</bugzilla> - Show clear passwords in HTTP Authorization Manager</li>
<li><bugzilla>53616</bugzilla> - Display 'Apache JMeter' title in app title bar in Gnome 3</li>
<li><bugzilla>53759</bugzilla> - ClientJMeterEngine perfoms unnecessary traverse using SearchByClass(TestListener)</li>
<li><bugzilla>52601</bugzilla> - CTRL + F for the new Find feature</li>
<li><bugzilla>53796</bugzilla> - TestCompiler uses static Set which can grow huge</li>
<li><bugzilla>53673</bugzilla> - Add JMeter version in the jmx file</li>
<li>Add support for HeapDump to the JMeter non-GUI and GUI client</li>
<li><bugzilla>53862</bugzilla> - Would be nice to have the JMeter Version available as a property</li>
<li><bugzilla>53806</bugzilla> - FileServer should provide thread-safe parsing</li>
<li><bugzilla>53807</bugzilla> - CSV Dataset does not handle embedded new lines in quoted data</li>
<li><bugzilla>53879</bugzilla> - GUI : Allow Popups to be closed with ESC key</li>
<li><bugzilla>53876</bugzilla> - Allow URL Filters (HTTP Proxy) to be pasted from clipboard</li>
</ul>
<h2>Non-functional changes</h2>
<ul>
<li><bugzilla>53311</bugzilla> - JMeterUtils#runSafe should not throw Error when interrupted</li>
<li>Updated to commons-net-3.1 (from 3.0.1)</li>
<li>Updated to HttpComponents Core 4.2.2 (from 4.1.4) and HttpComponents Client 4.2.1 (from 4.1.3)</li>
<li><bugzilla>53765</bugzilla> - Switch to commons-lang3-3.1</li>
<li><bugzilla>53884</bugzilla> - wrong Maven groupId for commons-lang</li>
<p>Addition of a "Non Persistent Delivery" option to send "Non-Persistent" (Guaranteed to be delivered at most once. Message loss is not a concern.) JMS messages
New interface org.apache.jmeter.engine.util.ConfigMergabilityIndicator has been introduced to tell whether a ConfigTestElement can be merged in Sampler (see <bugzilla>53042</bugzilla>):<br/>
<p>New interface org.apache.jmeter.protocol.http.proxy.SamplerCreator to allow plugging HTTP based samplers that differ from default HTTP Samplers through Proxy during Recording Phase (see <bugzilla>52674</bugzilla>):<br/>
<p>Listeners don't show iteration counts when a If Controller has a condition which is always false from the first iteration (see <bugzilla>52496</bugzilla>).
When doing replacement of User Defined Variables, Proxy will not substitute partial values anymore when "Regexp matching" is used. It will use Perl 5 word matching ("\b")
</p>
<p>
In User Defined Variables, Test Plan, HTTP Sampler Arguments Table, Java Request Defaults, JMS Sampler and Publisher, LDAP Request Defaults and LDAP Extended Request Defaults, rows with
empty Name and Value are no more saved.
</p>
<p>
JMeter now expands the Test Plan tree to the testplan level and no further and selects the root of the tree. Furthermore default value of onload.expandtree is false.
</p>
<p>
Graph Full Results Listener has been removed.
</p>
<p>
When calling "Clear All" command, if Log Viewer is displayed its content will be cleared.
<li><bugzilla>52613</bugzilla> - Using Raw Post Body option, text gets encoded</li>
<li><bugzilla>52781</bugzilla> - Content-Disposition header garbled even if browser compatible headers is checked (HC4) </li>
<li><bugzilla>52796</bugzilla> - MonitorHandler fails to clear variables when starting a new parse</li>
<li><bugzilla>52871</bugzilla> - Multiple Certificates not working with HTTP Client 4</li>
<li><bugzilla>52885</bugzilla> - Proxy : Recording issues with HTTPS, cookies starting with secure are partly truncated</li>
<li><bugzilla>52886</bugzilla> - Proxy : Recording issues with HTTPS when spoofing is on, secure cookies are not always changed</li>
<li><bugzilla>52897</bugzilla> - HTTPSampler : Using PUT method with HTTPClient4 and empty Content Encoding and sending files leads to NullPointerException</li>
<li><bugzilla>53145</bugzilla> - HTTP Sampler - function in path evaluated too early</li>
<li><bugzilla>52868</bugzilla> - BSF language list should be sorted</li>
<li><bugzilla>52869</bugzilla> - JSR223 language list currently uses BSF list which is wrong</li>
<li><bugzilla>52932</bugzilla> - JDBC Sampler : Sampler is not marked in error in an Exception which is not of class IOException, SQLException, IOException occurs</li>
<li><bugzilla>52916</bugzilla> - JDBC Exception if there is an empty user defined variable</li>
<li><bugzilla>52937</bugzilla> - Webservice Sampler : Clear Soap Documents Cache at end of Test </li>
<li><bugzilla>53027</bugzilla> - Jmeter starts throwing exceptions while using SMTP Sample in a test plan with HTTP Cookie Mngr or HTTP Request Defaults</li>
<li><bugzilla>53072</bugzilla> - JDBC PREPARED SELECT statements should return results in variables like non prepared SELECT</li>
<li><bugzilla>52603</bugzilla> - MailerVisualizer : Enable SSL , TLS and Authentication</li>
<li><bugzilla>52698</bugzilla> - Remove Graph Full Results Listener</li>
<li><bugzilla>53070</bugzilla> - Change Aggregate graph to Clustered Bar chart, add more columns (median, 90% line, min, max) and options, fixed some bugs</li>
<li><bugzilla>53246</bugzilla> - Mailer Visualizer: improve GUI design and I18N</li>
<li><bugzilla>45839</bugzilla> - Test Action : Allow premature exit from a loop</li>
<li><bugzilla>52614</bugzilla> - MailerModel.sendMail has strange way to calculate debug setting</li>
<li><bugzilla>52782</bugzilla> - Add a detail button on parameters table to show detail of a Row</li>
<li><bugzilla>52674</bugzilla> - Proxy : Add a Sampler Creator to allow plugging HTTP based samplers using potentially non textual POST Body (AMF, Silverlight...) and customizing them for others</li>
<li><bugzilla>52934</bugzilla> - GUI : Open Test plan with the tree expanded to the testplan level and no further and select the root of the tree</li>
<li><bugzilla>52941</bugzilla> - Improvements of HTML report design generated by JMeter Ant task extra</li>
<li><bugzilla>53042</bugzilla> - Introduce a new method in Sampler interface to allow Sampler to decide wether a config element applies to Sampler</li>
<li><bugzilla>52771</bugzilla> - Documentation : Added RSS feed on JMeter Home page under link "Subscribe to What's New"</li>
<li><bugzilla>42784</bugzilla> - Show the number of errors logged in the GUI</li>
<li><bugzilla>53256</bugzilla> - Make Clear All command clean LogViewer content</li>
<li><bugzilla>53261</bugzilla> - Make "Error/fatal" counter added in <bugzilla>42784</bugzilla> open Log Viewer panel when Warn Indicator is clicked</li>
<p>Listeners don't show iteration counts when a If Controller has a condition which is always false from the first iteration (see <bugzilla>52496</bugzilla>).
<li><bugzilla>51939</bugzilla> - Should generate new parent sample if necessary when retrieving embedded resources</li>
<li><bugzilla>51942</bugzilla> - Synchronisation issue on CacheManager when Concurrent Download is used</li>
<li><bugzilla>51957</bugzilla> - Concurrent get can hang if a task does not complete</li>
<li><bugzilla>51925</bugzilla> - Calling Stop on Test leaks executor threads when concurrent download of resources is on</li>
<li><bugzilla>51980</bugzilla> - HtmlParserHTMLParser double-counts images used in links</li>
<li><bugzilla>52064</bugzilla> - OutOfMemory Risk in CacheManager</li>
<li><bugzilla>51919</bugzilla> - Random ConcurrentModificationException or NoSuchElementException in CookieManager#removeMatchingCookies when using Concurrent Download</li>
<li><bugzilla>52126</bugzilla> - HttpClient4 does not clear cookies between iterations</li>
<li><bugzilla>52129</bugzilla> - Reported Body Size is wrong when using HTTP Client 4 and Keep Alive connection</li>
<li><bugzilla>52137</bugzilla> - Problems with HTTP Cache Manager</li>
<li><bugzilla>52221</bugzilla> - Nullpointer Exception with use Retrieve Embedded Resource without HTTP Cache Manager</li>
<li><bugzilla>52310</bugzilla> - variable in IPSource failed HTTP request if "Concurrent Pool Size" is enabled</li>
<li><bugzilla>52371</bugzilla> - API Incompatibility - Methods in HTTPSampler2 now require PostMethod instead of HttpMethod[Base]. Reverted to original types.</li>
<li><bugzilla>49950</bugzilla> - Proxy : IndexOutOfBoundsException when recording with Proxy server</li>
<li><bugzilla>52409</bugzilla> - HttpSamplerBase#errorResult modifies sampleResult passed as parameter;
<li><bugzilla>51996</bugzilla> - JMS Initial Context leak newly created Context when Multiple Thread enter InitialContextFactory#lookupContext at the same time</li>
<li><bugzilla>51691</bugzilla> - Authorization does not work for JMS Publisher and JMS Subscriber</li>
<li><bugzilla>52036</bugzilla> - Durable Subscription fails with ActiveMQ due to missing clientId field</li>
<li><bugzilla>52044</bugzilla> - JMS Subscriber used with many threads leads to javax.naming.NamingException: Something already bound with ActiveMQ</li>
<li><bugzilla>52072</bugzilla> - LengthPrefixedBinaryTcpClientImpl may end a sample prematurely</li>
<li><bugzilla>52390</bugzilla> - AbstractJDBCTestElement:Memory leak and synchronization issue in perConnCache</li>
<li><bugzilla>51865</bugzilla> - Infinite loop inside thread group does not work properly if "Start next loop after a Sample error" option set</li>
<li><bugzilla>51868</bugzilla> - A lot of exceptions in jmeter.log while using option "Start next loop" for thread</li>
<li><bugzilla>51866</bugzilla> - Counter under loop doesn't work properly if "Start next loop on error" option set for thread group</li>
<li><bugzilla>52296</bugzilla> - TransactionController + Children ThrouputController or InterleaveController leads to ERROR sampleEnd called twice java.lang.Throwable: Invalid call sequence when TPC does not run sample</li>
<li><bugzilla>52330</bugzilla> - With next-Loop-On-Error after error samples are not executed in next loop</li>
<li><bugzilla>51733</bugzilla> - SyncTimer is messed up if you a interrupt a test plan</li>
<li><bugzilla>52118</bugzilla> - New toolbar : shutdown and stop buttons not disabled when no test is running</li>
<li><bugzilla>52125</bugzilla> - StatCalculator.addAll(StatCalculator calc) joins incorrect if there are more samples with the same response time in one of the TreeMap</li>
<li><bugzilla>52087</bugzilla> - TCPClient interface does not allow for partial reads</li>
<li><bugzilla>52115</bugzilla> - SOAP/XML-RPC should not send a POST request when file to send is not found</li>
<li><bugzilla>40750</bugzilla> - TCPSampler : Behaviour when sockets are closed by remote host</li>
<li><bugzilla>52396</bugzilla> - TCP Sampler in "reuse connection mode" reuses previous sampler's connection even if it's configured with other host, port, user or password</li>
<li><bugzilla>52048</bugzilla> - BSFSampler, BSFPreProcessor and BSFPostProcessor should share the same GUI</li>
<li><bugzilla>52022</bugzilla> - In View Results Tree rather than showing just a message if the results are to big, show as much of the result as are configured</li>
<li><bugzilla>52201</bugzilla> - Add option to TableVisualiser to display child samples instead of parent </li>
<li><bugzilla>52214</bugzilla> - Save Responses to a file - improve naming algorithm</li>
<li><bugzilla>52340</bugzilla> - Allow remote sampling mode to be changed at run-time</li>
<li><bugzilla>52452</bugzilla> - Improvements on Aggregate Graph Listener (GUI and settings)</li>
<li><bugzilla>51892</bugzilla> - Default mirror port should be different from default proxy port</li>
<li><bugzilla>51817</bugzilla> - Moving variables up and down in User Defined Variables control</li>
<li><bugzilla>51876</bugzilla> - Functionality to search in Samplers TreeView</li>
<li><bugzilla>52019</bugzilla> - Add menu option to Start a test ignoring Pause Timers</li>
<li><bugzilla>52027</bugzilla> - Allow System or CrossPlatform LAF to be set from options menu</li>
<li><bugzilla>52037</bugzilla> - Remember user-set LaF over restarts.</li>
<li><bugzilla>51861</bugzilla> - Improve HTTP Request GUI to better show parameters without name (GWT RPC requests for example) (UNDER DEVELOPMENT)</li>
<li><bugzilla>52040</bugzilla> - Add a toolbar in JMeter main window</li>
<li><bugzilla>51816</bugzilla> - Comment Field in User Defined Variables control.</li>
<li><bugzilla>52052</bugzilla> - Using a delimiter to separate result-messages for JMS Subscriber</li>
<li><bugzilla>52103</bugzilla> - Add automatic scrolling option to table visualizer</li>
<li><bugzilla>52097</bugzilla> - Save As should point to same folder that was used to open a file if MRU list is used</li>
<li><bugzilla>52085</bugzilla> - Allow multiple selection in arguments panel</li>
<li><bugzilla>52099</bugzilla> - Allow to set the transaction isolation in the JDBC Connection Configuration</li>
<li><bugzilla>52116</bugzilla> - Allow to add (paste) entries from the clipboard to an arguments list</li>
<li><bugzilla>52160</bugzilla> - Don't display TestBeanGui items which are flagged as hidden</li>
<li><bugzilla>51886</bugzilla> - SampleSender configuration resolved partly on client and partly on server</li>
<li><bugzilla>52161</bugzilla> - Enable plugins to add own translation rules in addition to upgrade.properties.
<li><bugzilla>42538</bugzilla> - Add "duplicate node" in context menu</li>
<li><bugzilla>46921</bugzilla> - Add Ability to Change Controller elements</li>
<li><bugzilla>52240</bugzilla> - TestBeans should support Boolean, Integer and Long</li>
<li><bugzilla>52241</bugzilla> - GenericTestBeanCustomizer assumes that the default value is the empty string</li>
<li><bugzilla>52242</bugzilla> - FileEditor does not allow output to be saved in a File </li>
<li><bugzilla>51093</bugzilla> - when loading a selection previously stored by "Save Selection As", show the file name in the blue window bar</li>
<li><bugzilla>50086</bugzilla> - Password fields not Hidden in JMS Publisher, JMS Subscriber, Mail Reader sampler, SMTP sampler and Database Configuration</li>
<li><bugzilla>29352</bugzilla> - Use external store to hold samples during distributed testing, Added DiskStore remote sample sender: like Hold, but saves samples to disk until end of test.</li>
<li><bugzilla>52333</bugzilla> - Reduce overhead in calculating SampleResult#nanoTimeOffset</li>
<li><bugzilla>52346</bugzilla> - Shutdown detects if there are any non-daemon threads left which prevent JVM exit.</li>
<li><bugzilla>52281</bugzilla> - Support for file Drag and Drop</li>
<li><bugzilla>52471</bugzilla> - Improve Mirror Server performance by Using Pool of threads instead of launching a Thread for each request</li>
<li>If Controller - Fixed two regressions introduced by <bugzilla>50032</bugzilla> (see <bugzilla>50618</bugzilla> too)</li>
<li>If Controller - Catches a StackOverflowError when a condition returns always false (after at least one iteration with return true) See <bugzilla>50618</bugzilla></li>
<li><bugzilla>51869</bugzilla> - NullPointer Exception when using Include Controller</li>
<li><bugzilla>51605</bugzilla> - WebService(SOAP) Request - WebMethod field value changes surreptitiously for all the requests when a value is selected in a request</li>
<li><bugzilla>50178</bugzilla> - HeaderManager added as child of Thread Group can create concatenated HeaderManager names and OutOfMemoryException</li>
<li><bugzilla>50392</bugzilla> - value is trimmed when sending the request in Multipart</li>
<li><bugzilla>50686</bugzilla> - HeaderManager logging too verbose when merging instances</li>
<li><bugzilla>50684</bugzilla> - Optionally disable Content-Type and Transfer-Encoding in Multipart POST</li>
<li><bugzilla>50943</bugzilla> - Allowing concurrent downloads of embedded resources in html page</li>
<li><bugzilla>50170</bugzilla> - Bytes reported by http sampler is after GUnZip<br></br>Add optional properties to allow change the method to get response size</li>
<li><bugzilla>47385</bugzilla> - TransactionController should set AllThreads and GroupThreads</li>
<li><bugzilla>47940</bugzilla> - Module controller incorrectly creates the replacement Sub Tree</li>
<li><bugzilla>47592</bugzilla> - Run Thread groups consecutively with "Stop test" on error, JMeter will not mark to finished</li>
<li><bugzilla>48786</bugzilla> - Run Thread groups consecutively: with "Stop test now" on error or manual stop, JMeter leaves the green box active</li>
<li><bugzilla>48727</bugzilla> - Cannot stop test if all thread groups are disabled</li>
<li>Fix NPE when using nested Transaction Controllers with parent samples</li>
<li>Fix processing of Transaction Controller parent mode so current sampler is set to actual sampler</li>
<li><bugzilla>44941</bugzilla> - Throughput controllers should not share global counters</li>
<li><bugzilla>47120</bugzilla> - Throughput Controller: change percent executions to total executions, the value is stored in a String and interpreted as 1 execution</li>
<li><bugzilla>47150</bugzilla> - ThreadGroup with a loop count of zero causes infinite loop</li>
<li><bugzilla>47009</bugzilla> - Insert parent caused child controller name to be reset</li>
<li><bugzilla>47165</bugzilla> - Using duplicate Module Controller names in command line mode causes NPE</li>
</ul>
<h3>Listeners</h3>
<ul>
<li>Mailer Visualizer documentation now agrees with code i.e. failure/success counts need to be exceeded to trigger the mail.</li>
<li>Mailer Visualizer now shows the failure count</li>
<li>Mailer Visualiser - fix parsing of multiple e-mail address when using Test button</li>
<li><bugzilla>45976</bugzilla> - incomplete result file when using remote testing with more than 1 server</li>
<li>Fix Summariser so it works in client server mode</li>
<li><bugzilla>34096</bugzilla> - Duplicate samples not eliminated when writing to CSV files</li>
<li>Save "Include group Name in Label" setting in Aggregate and Summary reports</li>
<li>The JMeter variable "sample_variables" is sent to all server instances to ensure the data is available to the client.</li>
<li>CSVSaveService - check for EOF while reading quoted string</li>
</ul>
<h3>Assertions</h3>
<ul>
<li><bugzilla>45749</bugzilla> - Response Assertion does not work with a substring that happens to be an invalid RE</li>
<li><bugzilla>45904</bugzilla> - Allow 'Not' Response Assertion to succeed with null sample</li>
</ul>
<h3>Functions</h3>
<ul>
<li>Fix regex function - was failing to process $m$mid$n$ correctly</li>
<li>Protect against possible NPE in RegexFunction if called during test shutdown.</li>
<li>Avoid NPE if XPath function does not match any nodes</li>
<li>Correct the variable name "theadName" to "threadName" in the __jexl() and __javaScript() functions</li>
<li>A reference to a missing function - e.g. ${__missing(a)} - is now treated the same as a missing variable. Previously the function name - and leading { - were dropped.</li>
</ul>
<h3>I18N</h3>
<ul>
<li>Fixed language change handling for menus (does not yet work for TestBeans)</li>
<li>Add HeaderAsPropertyRenderer to support header resource names; use this to fix locale changes in various GUI elements</li>
<li><bugzilla>46424</bugzilla> - corrections to French translation</li>
<li><bugzilla>46844</bugzilla> - "Library" label in test plan are not I18N</li>
<li><bugzilla>47064</bugzilla> - fixes for Mac LAF</li>
<li><bugzilla>47127</bugzilla> - Unable to change language to pl_PL</li>
<li><bugzilla>47137</bugzilla> - Labels in View Results Tree aren't I18N</li>
<li><bugzilla>46423</bugzilla> - I18N of Proxy Recorder</li>
<li><bugzilla>45928</bugzilla> - AJP/1.3 Sampler doesn't retrieve its label from messages.properties</li>
</ul>
<h3>General</h3>
<ul>
<li>Prompt to overwrite an existing file when first saving a new test plan</li>
<li>Amend TestBeans to show the correct popup menu for Listeners</li>
<li>HTTP Mirror Server now always returns the exact same content, it used to return incorrect data if UTF-8 encoding was used for HTTP POST body, for example</li>
<li>The Proxy server removes If-Modified-Since and If-None-Match headers from generated Header Managers by default.
To change the list of removed headers, define the property proxy.headers.remove as a comma-separated list of headers to remove</li>
<li>The javaScript function now has access to JMeter variables and context etc. See <ahref="usermanual/functions.html#__javaScript">JavaScript function</a></li>
<li>Use drop-down list for BSF Sampler language field</li>
<li>Add hostname to items that can be saved in CSV and XML output files.</li>
<li>Errors only flag is now supported when loading XML and CSV files</li>
<li>Proxy now rejects attempts to use it with https</li>
<li>Proxy spoofing can now use RE matching to determine which urls to spoof (useful if images are not https)</li>
<li>Proxy spoofing now drops the default HTTPS port (443) when converting https: links to http:</li>
<li>Add Successes Only logging and display</li>
<li>The JMeter log file name is formatted as a SimpleDateFormat (applied to the current date) if it contains paired single-quotes, .e.g. 'jmeter_'yyyyMMddHHmmss'.log'</li>
<li>Added Collapse All and Expand All Option menu items</li>
<li>Allow optional definition of extra content-types that are viewable as text</li>
</ul>
<h4>Non-functional Improvements</h4>
<ul>
<li>Functor code tightened up; Functor can now be used with interfaces, as well as pre-defined targets and parameters.</li>
<li>Save graphics function now prompts before overwriting an existing file</li>
<li>Debug Sampler and Debug PostProcessor added.</li>
<li>Fixed up method names in Calculator and SamplingStatCalculator</li>
<li>Tidied up Listener documentation.</li>
</ul>
<!-- =================== -->
<h3>Version 2.3</h3>
<h3>Fixes since 2.3RC4</h3>
<h4>Bug fixes</h4>
<ul>
<li>Fix NPE in SampleResultConverter - XStream PrettyPrintWriter cannot handle nulls</li>
<li>If Java HTTP sampler sees null ResponseMessage, replace with HTTP header</li>
<li><bugzilla>40371</bugzilla> - response assertion "pattern to test" scrollbar problem</li>
<li><bugzilla>40589</bugzilla> - Unescape XML entities in embedded URLs</li>
<li><bugzilla>41902</bugzilla> - NPE in HTTPSampler when responseCode = -1</li>
<li><bugzilla>41903</bugzilla> - ViewResultsFullVisualizer : status column looks bad when you do copy and paste</li>
<li><bugzilla>41837</bugzilla> - Parameter value corruption in proxy</li>
<li><bugzilla>41905</bugzilla> - Can't cut/paste/select Header Manager fields in Java 1.6</li>
<li><bugzilla>41928</bugzilla> - Make all request headers sent by HTTP Request sampler appear in sample result</li>
<li><bugzilla>41944</bugzilla> - Subresults not handled recursively by ResultSaver</li>
<li><bugzilla>42022</bugzilla> - HTTPSampler does not allow multiple headers of same name</li>
<li><bugzilla>42019</bugzilla> - Content type not stored in redirected HTTP request with subresults</li>
<li><bugzilla>42057</bugzilla> - connection can be null if method is null</li>
<li><bugzilla>41518</bugzilla> - JMeter changes the HTTP header Content Type for POST request</li>
<li><bugzilla>42156</bugzilla> - HTTPRequest HTTPClient incorrectly urlencodes parameter value in POST</li>
<li><bugzilla>42184</bugzilla> - Number of bytes for subsamples not added to sample when sub samples are added</li>
<li><bugzilla>42185</bugzilla> - If a HTTP Sampler follows a redirect, and is set up to download images, then images are downloaded multiple times</li>
<li>Redirects can now be delegated to URLConnection by defining the JMeter property HTTPSamper.delegateRedirects=true (default is false) </li>
<li>Stop Thread and Stop Test methods added for Samplers and Assertions etc. Samplers can call setStopThread(true) or setStopTest(true) if they detect an error that needs to stop the thread of the test after the sample has been processed </li>
<li>Thread Group Gui now has an extra pane to specify what happens after a Sampler error: Continue (as now), Stop Thread or Stop Test.
This needs to be extended to a lower level at some stage. </li>
<li>Added Shutdown to Run Menu. This is the same as Stop except that it lets the Threads finish normally (i.e. after the next sample has been completed) </li>
<li>Remote samples can be cached until the end of a test by defining the property hold_samples=true when running the server.
More work is needed to be able to control this from the GUI </li>
<li>Proxy server has option to skip recording browser headers </li>
<li>Proxy restart works better (stop waits for daemon to finish) </li>
<li>Scheduler ignores start if it has already passed </li>
<li>Scheduler now has delay function </li>
<li>added Summariser test element (mainly for non-GUI) testing. This prints summary statistics to System.out and/or the log file every so oftem (3 minutes by default). Multiple summarisers can be used; samples are accumulated by summariser name. </li>
<li>Extra Proxy Server options:
Create all samplers with keep-alive disabled
Add Separator markers between sets of samples
Add Response Assertion to first sampler in each set </li>