-
Notifications
You must be signed in to change notification settings - Fork 2.1k
/
Copy pathchanges_history.xml
11506 lines (10060 loc) · 631 KB
/
changes_history.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<?xml version="1.0"?>
<!--
~ Licensed to the Apache Software Foundation (ASF) under one or more
~ contributor license agreements. See the NOTICE file distributed with
~ this work for additional information regarding copyright ownership.
~ The ASF licenses this file to you under the Apache License, Version 2.0
~ (the "License"); you may not use this file except in compliance with
~ the License. You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing, software
~ distributed under the License is distributed on an "AS IS" BASIS,
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
<!DOCTYPE document [
<!ENTITY hellip "…">
<!ENTITY le "≤">
<!ENTITY nbsp " ">
<!ENTITY ndash "–">
<!ENTITY oacute "ó">
<!ENTITY rarr "→">
<!ENTITY rArr "⇒">
<!ENTITY THORN "Þ">
<!ENTITY vellip "⋮">
]>
<document>
<properties>
<author email="dev AT jmeter.apache.org">JMeter developers</author>
<title>History of Previous Changes</title>
</properties>
<body>
<section name="History of Previous Changes">
<note>
<b>This page details the changes made in previous versions only.</b>
<br></br>
Current changes are detailed in <a href="changes.html">Changes</a>.
</note>
<p><b>Changes sections are chronologically ordered from top (most recent) to bottom
(least recent)</b></p>
<!-- =================== 5.6.2 =================== -->
<h1>Version 5.6.2 </h1>
<p>
Summary
</p>
<ul>
<li><a href="#Bug fixes">Bug fixes</a></li>
</ul>
<!-- =================== Bug fixes =================== -->
<ch_section>Bug fixes</ch_section>
<h3>General</h3>
<ul>
<li><pr>6042</pr><issue>6041</issue>Fix compatibility with Maven's pom.xml parser by adding explicit versions for
<code>com.google.auto.service:auto-service-annotations</code> (regression since 5.6)</li>
</ul>
<!-- =================== Thanks =================== -->
<ch_section>Thanks</ch_section>
<p>We thank all contributors mentioned in bug and improvement sections above:
</p>
<ul>
</ul>
<p>We also thank bug reporters who helped us improve JMeter.</p>
<ul>
</ul>
<p>
Apologies if we have omitted anyone else.
</p>
<!-- =================== Known bugs or issues related to JAVA Bugs =================== -->
<ch_section>Known problems and workarounds</ch_section>
<ul>
<li><issue>6043</issue> <code>Min</code> is always <code>0</code> in <code>Summary Report</code> (fixed in 5.6.3)</li>
<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 <code>0</code> (see <bugzilla>55510</bugzilla>).
</li>
<li>
Note that under some windows systems you may have this WARNING:
<source>
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.
</source>
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>
You may encounter the following error:
<source>java.security.cert.CertificateException: Certificates does not conform to algorithm constraints</source>
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 <code>md2WithRSAEncryption</code>) or with a SSL certificate with a size lower than 1024 bits.
This error is related to increased security in Java 8+.
<br></br>
To allow you to perform your HTTPS request, you can downgrade the security of your Java installation by editing
the Java <code>jdk.certpath.disabledAlgorithms</code> property. Remove the MD2 value or the constraint on size, depending on your case.
<br></br>
This property is in this file:
<source>JAVA_HOME/jre/lib/security/java.security</source>
See <bugzilla>56357</bugzilla> for details.
</li>
<li>
Under Mac OSX Aggregate Graph will show wrong values due to mirroring effect on numbers.
This is due to a known Java bug, see Bug <a href="https://bugs.openjdk.java.net/browse/JDK-8065373" >JDK-8065373</a>
The fix is to use JDK8_u45 or later.
</li>
<li>
View Results Tree may fail to display some HTML code under HTML renderer, see <bugzilla>54586</bugzilla>.
This is due to a known Java bug which fails to parse "<code>px</code>" units in row/col attributes.
See Bug <a href="https://bugs.openjdk.java.net/browse/JDK-8031109" >JDK-8031109</a>
The fix is to use JDK9 b65 or later.
</li>
<li>
JTable selection with keyboard (<keycombo><keysym>SHIFT</keysym><keysym>up/down</keysym></keycombo>) is totally unusable with Java 7 on Mac OSX.
This is due to a known Java bug <a href="https://bugs.openjdk.java.net/browse/JDK-8025126" >JDK-8025126</a>
The fix is to use JDK 8 b132 or later.
</li>
<li>
Since Java 11 the JavaScript implementation <a href="https://openjdk.java.net/jeps/335">Nashorn has been deprecated</a>.
Java will emit the following deprecation warnings, if you are using JavaScript based on Nashorn.
<source>
Warning: Nashorn engine is planned to be removed from a future JDK release
</source>
To silence these warnings, add <code>-Dnashorn.args=--no-deprecation-warning</code> to your Java arguments.
That can be achieved by setting the enviroment variable <code>JVM_ARGS</code>
<source>
export JVM_ARGS="-Dnashorn.args=--no-deprecation-warning"
</source>
</li>
<li>
With Java 15 the JavaScript implementation <a href="https://openjdk.java.net/jeps/372">Nashorn has been removed</a>. To add back a JSR-223 compatible JavaScript engine you have two options:
<dl>
<dt>Use Mozilla Rhino</dt>
<dd>Copy <a href="https://github.com/mozilla/rhino/releases/download/Rhino1_7_14_Release/rhino-engine-1.7.14.jar">rhino-engine-1.7.14.jar</a> into <code>$JMETER_HOME/lib/ext</code>.</dd>
<dt>Use OpenJDK Nashorn</dt>
<dd>
The OpenJDK Nashorn implementation comes as a module. To use it, you will have to download it and add it to the module path. A hacky way to download the version 15.0 (or later) and its dependencies and set the module path is outlined below:
<source>
mkdir lib/modules
pushd lib/modules
wget https://repo1.maven.org/maven2/org/openjdk/nashorn/nashorn-core/15.3/nashorn-core-15.3.jar
wget https://repo1.maven.org/maven2/org/ow2/asm/asm/9.5/asm-9.5.jar
wget https://repo1.maven.org/maven2/org/ow2/asm/asm-commons/9.5/asm-commons-9.5.jar
wget https://repo1.maven.org/maven2/org/ow2/asm/asm-util/9.5/asm-util-9.5.jar
wget https://repo1.maven.org/maven2/org/ow2/asm/asm-tree/9.5/asm-tree-9.5.jar
wget https://repo1.maven.org/maven2/org/ow2/asm/asm-analysis/9.5/asm-analysis-9.5.jar
popd
export JVM_ARGS="--module-path $PWD/lib/modules"
./bin/jmeter
</source>
</dd>
</dl>
</li>
</ul>
<!-- =================== 5.6.1 =================== -->
<h1>Version 5.6.1</h1>
<p>
Summary
</p>
<ul>
<li><a href="#New and Noteworthy">New and Noteworthy</a></li>
<li><a href="#Incompatible changes">Incompatible changes</a></li>
<li><a href="#Bug fixes">Bug fixes</a></li>
<li><a href="#Improvements">Improvements</a></li>
<li><a href="#Non-functional changes">Non-functional changes</a></li>
<li><a href="#Known problems and workarounds">Known problems and workarounds</a></li>
<li><a href="#Thanks">Thanks</a></li>
</ul>
<ch_section>New and Noteworthy</ch_section>
<ch_section>Improvements</ch_section>
<h3>HTTP Samplers and Test Script Recorder</h3>
<ul>
<li><pr>6010</pr>Use UTF-8 as a default encoding in HTTP sampler. It enables sending parameter names, and filenames with unicode characters</li>
<li><pr>6010</pr>Test Recorder will use UTF-8 encoding by default, so it will infer human-readable arguments rather than percent-encoded ones</li>
</ul>
<ch_section>Non-functional changes</ch_section>
<ul>
<li><pr>6000</pr>Add release-drafter for populating GitHub releases info based on the merged PRs</li>
<li><pr>5989</pr>Use Gradle toolchains for JDK provisioning, enable building and testing with different JDKs, start testing with Java 21</li>
<li><pr>5991</pr>Update jackson-core, jackson-databind, jackson-annotations to 2.15.2 (from 2.15.1)</li>
<li><pr>5993</pr>Update ph-commons to 10.2.5 (from 10.2.4)</li>
<li><pr>6017</pr>Update kotlin-stdlib to 1.8.22 (from 1.8.21)</li>
<li><pr>6020</pr>Update error_prone_annotations to 2.20.0 (from 2.19.1)</li>
<li><pr>6023</pr>Update checker-qual to 3.35.0 (from 3.34.0)</li>
</ul>
<h3>Other Samplers</h3>
<ul>
<li><pr>6028</pr> Change default value for <code>sampleresult.default.encoding</code> to UTF-8 (it inherits default HTTP encoding which was modified in <pr>6010</pr>)</li>
</ul>
<!-- =================== Bug fixes =================== -->
<ch_section>Bug fixes</ch_section>
<h3>Thread Groups</h3>
<ul>
<li><pr>6011</pr>Regression since 5.6: ThreadGroups are running endlessly in non-gui mode: use default value
for LoopController.continue_forever rather than initializing it in the constructor</li>
</ul>
<h3>Other Samplers</h3>
<ul>
<li><pr>6012</pr> Java Request sampler cannot be enabled again after disabling in UI (regression since 5.6)</li>
</ul>
<!-- =================== Thanks =================== -->
<ch_section>Thanks</ch_section>
<p>We thank all contributors mentioned in bug and improvement sections above:
</p>
<ul>
<li>Alex Schwartz, <a href="https://github.com/alexsch01">@alexsch01</a></li>
</ul>
<p>We also thank bug reporters who helped us improve JMeter.</p>
<ul>
<li>David Getzlaff, <a href="https://github.com/dgetzlaf">@dgetzlaf</a></li>
<li>LeeBaul, <a href="https://github.com/libaolu">@libaolu</a></li>
</ul>
<p>
Apologies if we have omitted anyone else.
</p>
<!-- =================== Known bugs or issues related to JAVA Bugs =================== -->
<ch_section>Known problems and workarounds</ch_section>
<ul>
<li><code>pom.xml</code> misses <code><version></code> tags for <code>auto-service-annotations</code>, so Maven can't infer transitive dependencies. The issue is resolved in 5.6.2</li>
<li><issue>6043</issue> <code>Min</code> is always <code>0</code> in <code>Summary Report</code> (fixed in 5.6.3)</li>
<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 <code>0</code> (see <bugzilla>55510</bugzilla>).
</li>
<li>
Note that under some windows systems you may have this WARNING:
<source>
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.
</source>
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>
You may encounter the following error:
<source>java.security.cert.CertificateException: Certificates does not conform to algorithm constraints</source>
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 <code>md2WithRSAEncryption</code>) or with a SSL certificate with a size lower than 1024 bits.
This error is related to increased security in Java 8+.
<br></br>
To allow you to perform your HTTPS request, you can downgrade the security of your Java installation by editing
the Java <code>jdk.certpath.disabledAlgorithms</code> property. Remove the MD2 value or the constraint on size, depending on your case.
<br></br>
This property is in this file:
<source>JAVA_HOME/jre/lib/security/java.security</source>
See <bugzilla>56357</bugzilla> for details.
</li>
<li>
Under Mac OSX Aggregate Graph will show wrong values due to mirroring effect on numbers.
This is due to a known Java bug, see Bug <a href="https://bugs.openjdk.java.net/browse/JDK-8065373" >JDK-8065373</a>
The fix is to use JDK8_u45 or later.
</li>
<li>
View Results Tree may fail to display some HTML code under HTML renderer, see <bugzilla>54586</bugzilla>.
This is due to a known Java bug which fails to parse "<code>px</code>" units in row/col attributes.
See Bug <a href="https://bugs.openjdk.java.net/browse/JDK-8031109" >JDK-8031109</a>
The fix is to use JDK9 b65 or later.
</li>
<li>
JTable selection with keyboard (<keycombo><keysym>SHIFT</keysym><keysym>up/down</keysym></keycombo>) is totally unusable with Java 7 on Mac OSX.
This is due to a known Java bug <a href="https://bugs.openjdk.java.net/browse/JDK-8025126" >JDK-8025126</a>
The fix is to use JDK 8 b132 or later.
</li>
<li>
Since Java 11 the JavaScript implementation <a href="https://openjdk.java.net/jeps/335">Nashorn has been deprecated</a>.
Java will emit the following deprecation warnings, if you are using JavaScript based on Nashorn.
<source>
Warning: Nashorn engine is planned to be removed from a future JDK release
</source>
To silence these warnings, add <code>-Dnashorn.args=--no-deprecation-warning</code> to your Java arguments.
That can be achieved by setting the enviroment variable <code>JVM_ARGS</code>
<source>
export JVM_ARGS="-Dnashorn.args=--no-deprecation-warning"
</source>
</li>
<li>
With Java 15 the JavaScript implementation <a href="https://openjdk.java.net/jeps/372">Nashorn has been removed</a>. To add back a JSR-223 compatible JavaScript engine you have two options:
<dl>
<dt>Use Mozilla Rhino</dt>
<dd>Copy <a href="https://github.com/mozilla/rhino/releases/download/Rhino1_7_14_Release/rhino-engine-1.7.14.jar">rhino-engine-1.7.14.jar</a> into <code>$JMETER_HOME/lib/ext</code>.</dd>
<dt>Use OpenJDK Nashorn</dt>
<dd>
The OpenJDK Nashorn implementation comes as a module. To use it, you will have to download it and add it to the module path. A hacky way to download the version 15.0 (or later) and its dependencies and set the module path is outlined below:
<source>
mkdir lib/modules
pushd lib/modules
wget https://repo1.maven.org/maven2/org/openjdk/nashorn/nashorn-core/15.3/nashorn-core-15.3.jar
wget https://repo1.maven.org/maven2/org/ow2/asm/asm/9.5/asm-9.5.jar
wget https://repo1.maven.org/maven2/org/ow2/asm/asm-commons/9.5/asm-commons-9.5.jar
wget https://repo1.maven.org/maven2/org/ow2/asm/asm-util/9.5/asm-util-9.5.jar
wget https://repo1.maven.org/maven2/org/ow2/asm/asm-tree/9.5/asm-tree-9.5.jar
wget https://repo1.maven.org/maven2/org/ow2/asm/asm-analysis/9.5/asm-analysis-9.5.jar
popd
export JVM_ARGS="--module-path $PWD/lib/modules"
./bin/jmeter
</source>
</dd>
</dl>
</li>
</ul>
<!-- =================== 5.6 =================== -->
<h1>Version 5.6</h1>
<p>
Summary
</p>
<ul>
<li><a href="#New and Noteworthy">New and Noteworthy</a></li>
<li><a href="#Incompatible changes">Incompatible changes</a></li>
<li><a href="#Bug fixes">Bug fixes</a></li>
<li><a href="#Improvements">Improvements</a></li>
<li><a href="#Non-functional changes">Non-functional changes</a></li>
<li><a href="#Known problems and workarounds">Known problems and workarounds</a></li>
<li><a href="#Thanks">Thanks</a></li>
</ul>
<ch_section>New and Noteworthy</ch_section>
<ch_section>Improvements</ch_section>
<h3>Thread Groups</h3>
<ul>
<li><issue>5682</issue><pr>717</pr> Open Model Thread Group: avoid skipping rows from CSV Data Set Config</li>
<li>Support custom thread group implementations in "Add think time" and "Save as test fragment" actions</li>
<li>Open Model Thread Group: interrupt pending HTTP requests and other <code>Interruptible</code> test elements on test stop</li>
</ul>
<h3>HTTP Samplers and Test Script Recorder</h3>
<ul>
<li><pr>5911</pr> Use Caffeine for caching HTTP headers instead of commons-collections4 LRUMap</li>
<li><pr>5947</pr> Fetch resources referenced in <code><link "rel"="preload"...></code> elements</li>
<li><pr>5869</pr> Allow more templates to format sampler names in the recorder: <code>#{url}</code>, <code>#{method}</code>, <code>#{scheme}</code>, <code>#{host}</code>, <code>#{port}</code></li>
</ul>
<h3>Other samplers</h3>
<ul>
<li><pr>5909</pr> Use Caffeine for caching compiled scripts in JSR223 samplers instead of commons-collections4 LRUMap</li>
</ul>
<h3>General</h3>
<ul>
<li><pr>5792</pr>Add KeyStroke for start_no_timers (Start no pauses: CRTL+SHIFT+n)</li>
<li><pr>5899</pr>Speed up CPU-bound tests by skipping <code>recoverRunningVersion</code> for elements that are shared between threads (the ones that implement <code>NoThreadClone</code>)</li>
<li><pr>5914</pr>Use <code>Locale.ROOT</code> instead of default locale for <code>toUpperCase</code>, and <code>toLowerCase</code> to avoid surprises with dotless I in <code>tr_TR</code> locale</li>
<li><pr>5885</pr>Use Java's <code>ServiceLoader</code> for loading plugins instead of classpath scanning. It enables faster startup</li>
<li><pr>5788</pr><code>FunctionProperty</code> no longer caches the value.
Previously it cached the values based on iteration number only which triggered wrong results on concurrent executions.
The previous behavior can be temporary restored with <code>function.cache.per.iteration</code> property.
</li>
<li><pr>5920</pr>Improve HTTP HeaderManager performance when it contains many headers: skip reinitialization on each iteration</li>
<li><pr>5920</pr>Use AtomicInteger and AtomicLong instead of synchronized primitives for JMeterContextService#numberOfThreads</li>
<li><pr>5920</pr>Cache bean properties in <code>TestBeanHelper</code> and avoid synchronization, so test plans with <code>TestBean</code>-based elements is faster</li>
<li><pr>5920</pr>Improve computation when many threads actively produce samplers by using <code>LongAdder</code> and similar concurrency classes to avoid synchronization in <code>Calculator</code></li>
<li><pr>5920</pr>Reduce synchronization contention on <code>AbstractTestElement</code> that are shared between threads (the ones that implement <code>NoThreadClone</code>)</li>
<li><pr>5934</pr>Added caching for date formatters for <code>__time</code> function</li>
<li><pr>710</pr><issue>5666</issue>Added Shortcut key event for Reset search: <code>ctrl + alt + F</code>, <code>cmd + alt + F</code></li>
<li><pr>5959</pr><code>TestElement</code> has been migrated to Kotlin, so nullable types are annotated better</li>
<li><pr>5944</pr>Add PI for declaring <code>TestElement</code> schemas so element properties are easier to access in code (see <code>TestElementSchema</code>, <code>TestElement#getSchema()</code>, <code>TestElement#getProps()</code>)</li>
<li><pr>5944</pr>Enable usage of <code>${...}</code> expressions for checkbox controls (see context menus for checkboxes, however, the individual components should be adapted individually)</li>
<li><pr>678</pr>Experimental Kotlin and Java DSL for programmatic test plan generation (see <a href="usermanual/build-programmatic-test-plan.html#treebuilder_kotlin_dsl">Creating a plan with Kotlin DSL</a>)</li>
</ul>
<ch_section>Non-functional changes</ch_section>
<ul>
<li><pr>725</pr>Add Chinese Simplified Translation for Open Model Thread Group</li>
<li><pr>5710</pr>Add GitHub Issue templates</li>
<li><pr>5910</pr>Use Caffeine for caching customizers in TestBeanGUI instead of commons-collections4 LRUMap</li>
<li><pr>5713</pr><pr>5931</pr>Update Spock to 2.3-groovy-3.0 (from 2.1-groovy-3.0)</li>
<li><issue>5718</issue>Update Apache commons-text to 1.10.0 (from 1.9)</li>
<li><pr>5731</pr>Update docs for <code>changeCase</code> function. <code>UPPER</code> is the default</li>
<li><pr>5924</pr>Update Apache commons-io to 2.12.0 (from 2.11.0)</li>
<li><pr>5921</pr>Update Jackson Core to 2.15.1 (from 2.13.3)</li>
<li><pr>5921</pr>Update Jackson Databind to 2.15.1 (from 2.13.3)</li>
<li><pr>5725</pr>Update Tika Parser to 1.28.5 (from 1.28.3)</li>
<li><pr>5725</pr>Update JSoup to 1.16.1 (from 1.15.1)</li>
<li><pr>5725</pr>Update Apache commons-net to 3.9.0 (from 3.8.0)</li>
<li><pr>5725</pr>Update XStream to 1.4.20 (from 1.4.19)</li>
<li><pr>5763</pr><pr>5814</pr>Updated Gradle to 8.1.1 (from 7.2)</li>
<li><pr>5854</pr>Added Apache Httpclient5 5.1.3</li>
<li><pr>5833</pr>Update Apache Freemarker to 2.3.32 (from 2.3.31)</li>
<li><pr>5830</pr>Update Apache Groovy to 3.0.17 (from 3.0.11)</li>
<li><pr>5862</pr>Update Apache Httpclient to 4.5.14 (from 4.5.13)</li>
<li><pr>5880</pr>Update Apache Xalan to 2.7.3 (from 2.7.2)</li>
<li><pr>5854</pr>Update Saxon-HE to 11.5 (from 11.5)</li>
<li><pr>5840</pr><pr>5930</pr>Update accessors-smart to 2.4.11 (from 2.4.8)</li>
<li><pr>5837</pr>Update asm to 9.5 (from 9.3)</li>
<li><pr>5840</pr><pr>5930</pr>Update json-smart to 2.4.11 (from 2.4.8)</li>
<li><pr>5814</pr>Update kotlin-stdlib to 1.8.21 (from 1.6.21)</li>
<li><pr>5889</pr><pr>5918</pr><pr>5814</pr>Update kotlinx-coroutines-core to 1.8.21 (from 1.6.21)</li>
<li><pr>5889</pr><pr>5918</pr><pr>5814</pr>Update kotlinx-coroutines-swing to 1.8.21 (from 1.6.21)</li>
<li><pr>5907</pr>Update lets-plot-batik to 3.2.0 (from 2.1.1)</li>
<li><pr>5907</pr>Update lets-plot-jvm to 4.3.0 (from 3.1.1)</li>
<li><pr>5859</pr>Update log4j-1.2-api to 2.20.0 (from 2.17.2)</li>
<li><pr>5859</pr>Update log4j-api to 2.20.0 (from 2.17.2)</li>
<li><pr>5859</pr>Update log4j-core to 2.20.0 (from 2.17.2)</li>
<li><pr>5859</pr>Update log4j-slf4j-impl to 2.20.0 (from 2.17.2)</li>
<li><pr>5861</pr>Update neo4j-java-driver to 4.4.11 (from 4.4.6)</li>
<li><pr>5853</pr>Update org.jetbrains:annotations to 24.0.1 (from 23.0.0)</li>
<li><pr>5868</pr><pr>5886</pr>Update ph-commons to 10.2.4 (from 10.1.6)</li>
<li><pr>5861</pr>Update reactive-streams to 1.0.4 (from 1.0.3)</li>
<li><pr>5847</pr>Update rsyntaxtextarea to 3.3.3 (from 3.2.0)</li>
<li><pr>5839</pr>Update svgSalamander to 1.1.4 (from 1.1.2.4)</li>
<li><pr>5852</pr>Update xmlgraphics-commons to 2.8 (from 2.7)</li>
<li><pr>5854</pr>Update xmlresolver to 4.6.4 (from 4.2.0)</li>
<li><pr>693</pr>Added randomized test GitHub Actions matrix for better coverage of locales and time zones</li>
<li><pr>5960</pr>Add OpenJDK JMH for creating microbenchmarks in JMeter code</li>
<li><issue>5961</issue>Deprecate TestElement.threadName as it is not related to TestElement</li>
</ul>
<!-- =================== Bug fixes =================== -->
<ch_section>Bug fixes</ch_section>
<h3>HTTP Samplers and Test Script Recorder</h3>
<ul>
<li><pr>5901</pr>Fix NumberFormatException when counter is empty or not a digit on Proxy Settings panel</li>
<li><pr>5987</pr><issue>4546</issue>Encode unicode characters in filenames when sending files in HTTP Sampler</li>
</ul>
<h3>Other Samplers</h3>
<ul>
<li><pr>5736</pr><issue>5733</issue>Allow <code>SampleResult#setEndTime</code> be set in <code>JSR223Sampler</code></li>
</ul>
<h3>Listeners</h3>
<ul>
<li><issue>5740</issue><pr>5741</pr>Fix Aggregated Graph component to cope with empty names of samplers</li>
<li><issue>5807</issue>Fix an <code>ArrayIndexOutOfBoundsException</code> on HTTP parameters line on special case when key and value are empty,
i.e.: "<code>k1=v1&=&k2=v2</code>"</li>
<li><issue>5654</issue><pr>5785</pr> Fix <code>InfluxDBRawBackendListenerClient</code> missing data. Allow InfluxDB to insert multiple entries with the
same <code>timestamp</code> but with different <code>threadName</code>. Contributed by Victor Peralta (vperaltac at github)</li>
</ul>
<h3>Timers, Assertions, Config, Pre- & Post-Processors</h3>
<ul>
<li><pr>5717</pr>Add jsonpath string to JSON Path Assertion error message so the error is easier to understand</li>
<li><pr>723</pr>Use correct number format on JSON Path Assertion. Contributed by andreaslind01 (andreaslind01 at gmail.com)</li>
</ul>
<h3>Report / Dashboard</h3>
<ul>
<li><bug>66140</bug>Guess the delimiter of the CSV source, when configured one seems wrong.
This is in line with the behaviour of CSVSaveService.</li>
</ul>
<h3>Documentation</h3>
<ul>
<li><issue>5694</issue>Document changed formatter for <funclink name="__time()"/>. A warning will be logged,
if the code <code>u</code> is found in the format string, as the meaning for that code has changed from <em>day-of-week</em>
to <em>year</em>.</li>
</ul>
<h3>General</h3>
<ul>
<li><bug>66157</bug><pr>719</pr>Correct theme for darklaf on rsyntaxtextarea</li>
<li><issue>5872</issue><pr>5874</pr>Trim name in Argument objects.</li>
<li><pr>693</pr>Avoid wrong results when <code>Object.hashCode()</code> happen to collide. Use <code>IdentityHashMap</code> instead of <code>HashMap</code> when key is <code>TestElement</code></li>
<li>Refresh UI when dragging JMeter window from one monitor to another, so rich syntax text areas are properly editable after window movement</li>
<li><pr>5984</pr><code>AbstractTestElement#clone</code> might produce non-identical clones if element constructor adds a non-default property value</li>
</ul>
<!-- =================== Thanks =================== -->
<ch_section>Thanks</ch_section>
<p>We thank all contributors mentioned in bug and improvement sections above:
</p>
<ul>
<li>Alex Schwartz, <a href="https://github.com/alexsch01">@alexsch01</a></li>
<li>Andreas Lind, <a href="https://github.com/andreaslind01">@andreaslind01</a></li>
<li>Arnout Engelen, <a href="https://github.com/raboof">@raboof</a></li>
<li>Clay Johnson, <a href="https://github.com/clayburn">@clayburn</a></li>
<li>David Getzlaff, <a href="https://github.com/dgetzlaf">@dgetzlaf</a></li>
<li>Kai Lehmann, <a href="https://github.com/lehmannk">@lehmannk</a></li>
<li>kaola89, <a href="https://github.com/kaola89">@kaola89</a></li>
<li>Matt Tansley, <a href="https://github.com/matthewt-assurity">@matthewt-assurity</a></li>
<li>Mohamed Ibrahim, <a href="https://github.com/rollno748">@rollno748</a></li>
<li>Ori Marko, <a href="https://github.com/orimarko">@orimarko</a></li>
<li>PJ Fanning, <a href="https://github.com/pjfanning">@pjfanning</a></li>
<li>Sandra Thieme, <a href="https://github.com/sandra-thieme">@sandra-thieme</a></li>
<li>Stefan Seide, <a href="https://github.com/sseide">@sseide</a></li>
<li>Victor Peralta, <a href="https://github.com/vperaltac">@vperaltac</a></li>
<li>Vincent DABURON, <a href="https://github.com/vdaburon">@vdaburon</a></li>
</ul>
<p>We also thank bug reporters who helped us improve JMeter.</p>
<ul>
</ul>
<p>
Apologies if we have omitted anyone else.
</p>
<!-- =================== Known bugs or issues related to JAVA Bugs =================== -->
<ch_section>Known problems and workarounds</ch_section>
<ul>
<li><issue>6008</issue> ThreadGroups are running endlessly in non-gui mode (fixed in 5.6.1, see <pr>6011</pr>)</li>
<li><issue>6043</issue> <code>Min</code> is always <code>0</code> in <code>Summary Report</code> (fixed in 5.6.3)</li>
<li><pr>5987</pr>HTTP sampler sends filenames with percent-encoded UTF-8, however it is not aligned with the browsers. The workaround is to refrain non-ASCII filenames</li>
<li><issue>6004</issue>Java Request sampler cannot be enabled again after disabling in UI (fixed in 5.6.1, <pr>6012</pr>)</li>
<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 <code>0</code> (see <bugzilla>55510</bugzilla>).
</li>
<li>
Note that under some windows systems you may have this WARNING:
<source>
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.
</source>
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>
You may encounter the following error:
<source>java.security.cert.CertificateException: Certificates does not conform to algorithm constraints</source>
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 <code>md2WithRSAEncryption</code>) or with a SSL certificate with a size lower than 1024 bits.
This error is related to increased security in Java 8+.
<br></br>
To allow you to perform your HTTPS request, you can downgrade the security of your Java installation by editing
the Java <code>jdk.certpath.disabledAlgorithms</code> property. Remove the MD2 value or the constraint on size, depending on your case.
<br></br>
This property is in this file:
<source>JAVA_HOME/jre/lib/security/java.security</source>
See <bugzilla>56357</bugzilla> for details.
</li>
<li>
Under Mac OSX Aggregate Graph will show wrong values due to mirroring effect on numbers.
This is due to a known Java bug, see Bug <a href="https://bugs.openjdk.java.net/browse/JDK-8065373" >JDK-8065373</a>
The fix is to use JDK8_u45 or later.
</li>
<li>
View Results Tree may fail to display some HTML code under HTML renderer, see <bugzilla>54586</bugzilla>.
This is due to a known Java bug which fails to parse "<code>px</code>" units in row/col attributes.
See Bug <a href="https://bugs.openjdk.java.net/browse/JDK-8031109" >JDK-8031109</a>
The fix is to use JDK9 b65 or later.
</li>
<li>
JTable selection with keyboard (<keycombo><keysym>SHIFT</keysym><keysym>up/down</keysym></keycombo>) is totally unusable with Java 7 on Mac OSX.
This is due to a known Java bug <a href="https://bugs.openjdk.java.net/browse/JDK-8025126" >JDK-8025126</a>
The fix is to use JDK 8 b132 or later.
</li>
<li>
Since Java 11 the JavaScript implementation <a href="https://openjdk.java.net/jeps/335">Nashorn has been deprecated</a>.
Java will emit the following deprecation warnings, if you are using JavaScript based on Nashorn.
<source>
Warning: Nashorn engine is planned to be removed from a future JDK release
</source>
To silence these warnings, add <code>-Dnashorn.args=--no-deprecation-warning</code> to your Java arguments.
That can be achieved by setting the enviroment variable <code>JVM_ARGS</code>
<source>
export JVM_ARGS="-Dnashorn.args=--no-deprecation-warning"
</source>
</li>
<li>
With Java 15 the JavaScript implementation <a href="https://openjdk.java.net/jeps/372">Nashorn has been removed</a>. To add back a JSR-223 compatible JavaScript engine you have two options:
<dl>
<dt>Use Mozilla Rhino</dt>
<dd>Copy <a href="https://github.com/mozilla/rhino/releases/download/Rhino1_7_14_Release/rhino-engine-1.7.14.jar">rhino-engine-1.7.14.jar</a> into <code>$JMETER_HOME/lib/ext</code>.</dd>
<dt>Use OpenJDK Nashorn</dt>
<dd>
The OpenJDK Nashorn implementation comes as a module. To use it, you will have to download it and add it to the module path. A hacky way to download the version 15.0 (or later) and its dependencies and set the module path is outlined below:
<source>
mkdir lib/modules
pushd lib/modules
wget https://repo1.maven.org/maven2/org/openjdk/nashorn/nashorn-core/15.3/nashorn-core-15.3.jar
wget https://repo1.maven.org/maven2/org/ow2/asm/asm/9.5/asm-9.5.jar
wget https://repo1.maven.org/maven2/org/ow2/asm/asm-commons/9.5/asm-commons-9.5.jar
wget https://repo1.maven.org/maven2/org/ow2/asm/asm-util/9.5/asm-util-9.5.jar
wget https://repo1.maven.org/maven2/org/ow2/asm/asm-tree/9.5/asm-tree-9.5.jar
wget https://repo1.maven.org/maven2/org/ow2/asm/asm-analysis/9.5/asm-analysis-9.5.jar
popd
export JVM_ARGS="--module-path $PWD/lib/modules"
./bin/jmeter
</source>
</dd>
</dl>
</li>
</ul>
<!-- =================== 5.5 =================== -->
<h1>Version 5.5</h1>
<p>
Summary
</p>
<ul>
<li><a href="#New and Noteworthy">New and Noteworthy</a></li>
<li><a href="#Incompatible changes">Incompatible changes</a></li>
<li><a href="#Bug fixes">Bug fixes</a></li>
<li><a href="#Improvements">Improvements</a></li>
<li><a href="#Non-functional changes">Non-functional changes</a></li>
<li><a href="#Known problems and workarounds">Known problems and workarounds</a></li>
<li><a href="#Thanks">Thanks</a></li>
</ul>
<ch_section>New and Noteworthy</ch_section>
<p>JMeter now supports Java 17</p>
<p>JMeter 5.5 ships with log4j2 2.17.2</p>
<ch_title>Open Model Thread Group</ch_title>
<p>New component: <code><a href="./usermanual/component_reference.html#Open_Model_Thread_Group">Open Model Thread Group</a></code>
allows creating load profiles with variable load.</p>
<p>For example, if you need to gradually increase load from <code>0/sec</code> to <code>10/sec</code> during <code>minute</code>
you could previously use <code>Thread Group + Timer</code> combinations. However, then you need to compute
the expected number of threads, ensure they are created only when needed, and so on.</p>
<p>With <code>Open Model Thread Group</code> you can configure the same load profile as <code>rate(0/sec) random_arrivals(1 minute) rate(10/sec)</code>.
The thread group would spawn threads as needed to drive the configured load.
The load profile can use properties, so you can launch the same script with slightly different load levels,
however, the profile can't be updated while the test is running.
</p>
<p>The new thread group is experimental in JMeter 5.5, so please feel free to submit your feedback.</p>
<figure width="1398" height="1117" image="open_model_thread_group.png">Open Model Thread Group sample</figure>
<ch_title>Preparing the deprecation of Oro Regex usage</ch_title>
<p>Another experimental feature in JMeter 5.5 is the ability to replace the Oro based Regex implementation
by the built-in Java based one. To choose the Java based one, set the JMeter property <code>jmeter.regex.engine</code>
to the value <code>java</code>.</p>
<ch_title>Core improvements</ch_title>
<p>Kotlin language is now used in some core classes and tests (e.g. Open Model Thread Group).
JMeter is compiled with <code>apiTarget=1.5</code>, and it ships with <code>kotlin-stdlib</code> 1.6.
</p>
<p><a href="https://github.com/JetBrains/lets-plot-kotlin">lets-plot-kotlin</a> charting library is added,
so it will be easier to refine and create new charts in UI in the future.
</p>
<ch_section>Improvements</ch_section>
<h3>Thread Groups</h3>
<ul>
<li>New component: <code><a href="./usermanual/component_reference.html#Open_Model_Thread_Group">Open Model Thread Group</a></code></li>
</ul>
<h3>HTTP Samplers and Test Script Recorder</h3>
<ul>
<li><bug>65027</bug>Detect mime-type for files automatically when adding files to HTTP Sampler</li>
<li><bug>65020</bug>HTTP Sampler/Files upload tab – add missing buttons</li>
<li><pr>650</pr>HTTP Sampler timestamp fix when exception is caught. Contributed by Konstantin Kalinin (konstantin at kkalinin.pro)</li>
<li><bug>65328</bug><pr>666</pr>HTTP 308 Permanent Redirect is not supported. Contributed by
Baptiste Gaillard (baptiste.gaillard at gmail.com)</li>
</ul>
<h3>Other samplers</h3>
<ul>
<li><bug>65149</bug><pr>644</pr>Encode the personal part of email addresses in SMTP Sampler</li>
<li><pr>638</pr>Various additions to the Bolt Sampler. Added <code>transaction timeout</code>, <code>database</code>
option required for Neo4j 4.x (with multi-database support) and <code>access mode</code> option, that allows running
against a Neo4j Enterprise Causal Cluster. Contributed by David Pecollet (david.pecollet at gmail.com)</li>
</ul>
<h3>Controllers</h3>
<ul>
<li><pr>665</pr>Increase visible lines of code in <code>IfController</code> and <code>WhileController</code>.
Based on an idea by David Getzlaff (david.getzlaff at t-systems.com>).</li>
</ul>
<h3>Listeners</h3>
<ul>
<li><bug>64988</bug>Sort properties and variables in a human expected order for DebugPostProcessor and DebugSampler</li>
<li><bug>63061</bug>Sort View Results in Table in a human expected order</li>
<li><pr>706</pr>Try to keep UI responsive when displaying large text results. Can be configured with the new property
<code>view.results.tree.simple_view_limit</code></li>
</ul>
<h3>Timers, Assertions, Config, Pre- & Post-Processors</h3>
<ul>
<li><pr>638</pr>Bolt Connection Configuration: added <code>ConnectionPoolMaxSize</code> parameter. Contributed by
David Pecollet (david.pecollet at gmail.com)</li>
<li><bug>65515</bug>Allow pooling of Prepared Statements in JDBC</li>
<li><bug>65299</bug>JSONPathAssertion attributes are out of order/Compare JSON objects and
not their string representations.</li>
</ul>
<h3>Report / Dashboard</h3>
<ul>
<li><bug>65353</bug>Make the estimator used for calculating percentiles on the dashboard configurable</li>
</ul>
<h3>General</h3>
<ul>
<li><bug>61805</bug><pr>663</pr>Add simple HTTP request template. Contributed by Ori Marko (orimarko at gmail.com)</li>
<li><bug>65611</bug><pr>673</pr>Add support for IPv6 addresses when specifying a remote worker node. Based on a patch by Peter Wong (peter.wong at csexperts.com)</li>
<li>Reduce memory consumption by the logging panel (disable undo events for it)</li>
<li><bug>63620</bug><pr>694</pr>Fix GUI freeze when viewing response body with long line breaks</li>
<li><pr>699</pr>Add documentation for Graphite Backend Listener. Contributed by Ji Hun (jihunkimkw at gmail.com)</li>
<li><bug>57672</bug><pr>700</pr>Add a switch (<code>jmeter.regex.engine</code>) to replace Oro Regex implementation by the built-in Java one.</li>
</ul>
<ch_section>Non-functional changes</ch_section>
<ul>
<li>Added Kotlin 1.6.21 for JMeter engine implementation (apiVersion=1.5). The set of JSR 223 languages is intact.</li>
<li><bug>65128</bug><pr>643</pr>Add missing documentation about <code>Same user on each iteration</code> for Thread Groups. Contributed by njkuzas.</li>
<li><pr>648</pr>Updated xmlgraphics-commons to 2.6 (from 2.3). Contributed by Stefan Seide (stefan at trilobyte-se.de)</li>
<li><pr>655</pr><pr>667</pr><pr>675</pr><pr>698</pr>Updated x-stream to 1.4.19 (from 1.4.15). Contributed by Stefan Seide (stefan at trilobyte-se.de)</li>
<li><pr>656</pr><pr>668</pr>Updated json-smart to 2.4.8 (from 2.3), accessors-smart to 2.4.8 (from 1.2) and asm 9.3 (from 9.0). Contributed by Stefan Seide (stefan at trilobyte-se.de)</li>
<li><bug>64831</bug>Log truststore entries in debug level for logger <code>org.apache.jmeter.util.keystore.JmeterKeyStore</code></li>
<li><bug>65232</bug>Hide splash screen when an error is displayed because the test plan could not be parsed.</li>
<li>Updated Groovy to 3.0.11 (from 3.0.7).</li>
<li>Updated Darklaf to 2.7.3 (from 2.5.4).</li>
<li>Updated Apache ActiveMQ to 15.6.4 (from 15.6.0).</li>
<li>Updated Asm to 9.2 (from 9.1).</li>
<li>Updated Bouncycastle to 1.70 (from 1.67).</li>
<li>Updated Caffeine to 2.9.3 (from 2.8.8).</li>
<li>Updated Apache commons-dbcp2 to 2.9.0 (from 2.8.0).</li>
<li>Updated Apache commons-io to 2.11.0 (from 2.8.0).</li>
<li>Updated Apache commons-lang3 to 3.12.0 (from 3.11).</li>
<li>Updated Apache commons-net to 3.8.0 (from 3.7.2).</li>
<li>Updated Apache commons-pool2 to 2.11.1 (from 2.9.0).</li>
<li>Updated equalsverifier to 3.10 (from 3.4.2).</li>
<li>Updated Apache Freemarker to 2.3.31 (from 2.3.30).</li>
<li>Updated hsqldb to 2.5.2 (from 2.5.0).</li>
<li>Updated Apache HttpClient to 4.5.13 (from 4.5.12).</li>
<li>Updated Apache HttpCore to 4.4.15 (from 4.4.13).</li>
<li>Updated jacoco to 0.8.7 (from 0.8.5).</li>
<li>Updated json-path to 2.7.0 (from 2.4.0).</li>
<li>Updated jsoup to 1.15.1 (from 1.13.1).</li>
<li>Updated JUnit to 4.13.2 and 5.8.2 (from 4.13.1 and 5.7.0).</li>
<li>Updated Apache log4j2 to 2.17.2 (from 2.13.3).</li>
<li>Updated Miglayout to 5.3 (from 5.2).</li>
<li>Updated Neo4j Java driver to 4.4.6 (from 4.2.0).</li>
<li>Updated Objenesis to 3.2 (from 2.6).</li>
<li>Updated ktlint to 0.40.0</li>
<li>Updated PH CSS and PH commons to 6.5.4 and 10.1.6 (from 6.2.3 and 9.5.1).</li>
<li>Updated RSyntaxTextArea to 3.2.0 (from 3.1.1).</li>
<li>Updated SLF4J to 1.7.36 (from 1.7.30).</li>
<li>Updated SvgSalamander to 1.1.2.4 (from 1.1.2.1).</li>
<li><pr>698</pr>Updated Apache Tika to 1.28.3 (from 1.26).</li>
<li>Updated WireMock-JRE8 to 2.30.0 (from 2.24.1).</li>
<li>Updated com.github.vlsi.vlsi-release-plugins 1.76 (from 1.74).</li>
<li>Updated jackson to 2.13.3 (from 2.10.5)</li>
<li>Updated jmespath to 0.5.1</li>
<li>Updated Saxon-HE to 11.2 (from 9.9.1-8)</li>
<li>Updated Apache xmlgraphics commons to 2.7 (from 2.6)</li>
<li><pr>671</pr>Move example definition of property <code>jmeter.reportgenerator.statistic_window</code>
to <code>user.properties</code>, as it is read from that place.
Contributed by Rithvik Patibandla (rithvikp98 at gmail.com)</li>
<li><bug>65456</bug>Updated commons-jexl 3 to 3.2.1 (from 3.1). Contributed by Ori Marko (orimarko at gmail.com>)</li>
<li><pr>654</pr>Try do give better feedback while loading keystores</li>
<li><pr>672</pr>Add more details to documentation for timeShift function. Contributed by Mariusz (mawasak at gmail.com)</li>
<li>Updated Gradle to 7.3 (from 7.2)</li>
<li><pr>689</pr>Code clean up in StringFromFile. Contributed by Sampath Kumar Krishnasamy (sampathkumar.krishnasamykuppusamy at aexp.com)</li>
<li><pr>690</pr>Refactor a few unit tests. Contributed by Sampath Kumar Krishnasamy (sampathkumar.krishnasamykuppusamy at aexp.com)</li>
<li><pr>692></pr>Fix a few deprecation warnings for Gradle. Contributed by Sampath Kumar Krishnasamy (sampathkumar.krishnasamykuppusamy at aexp.com)</li>
<li><pr>697></pr>Junit 5 tests to use asserts from Junit 5 API. Contributed by Sampath Kumar Krishnasamy (sampathkumar.krishnasamykuppusamy at aexp.com)</li>
<li><bug>65983</bug><pr>707</pr>Use current screenshot for save-to-file listener in documentation. Based on patch by NaveenKumar Namachivayam (catch.nkn at gmail.com)</li>
<li><pr>708</pr>Make errorprone happier. Based on patch by Wilson Kurniawan (wilson at visenze.com)></li>
<li>Updated Rhino JavaScript to 1.7.14 (from 1.7.13)</li>
</ul>
<!-- =================== Bug fixes =================== -->
<ch_section>Bug fixes</ch_section>
<h3>HTTP Samplers and Test Script Recorder</h3>
<ul>
<li><bug>65310</bug>Don't let users override <code>multipart/form-data</code> <code>content-type</code>
header in HC4 sampler.</li>
<li><bug>65363</bug><code>NullPointerException</code> in <code>HTTPHC4Impl$ManagedCredentialsProvider.getAuthorizationForAuthScope</code> when <code>401</code> response from remote and <code>httpclient4.auth.preemptive=false</code></li>
<li><bug>65692</bug>HTTP(s) Test Script Recorder: Enable setting enabled cipher suite and enabled protocols on SSLContext/ Align SSL properties between Java and HC4 implementation</li>
<li><bug>65108</bug>Support JMeter variables in <a href="./usermanual/component_reference.html#HTTP_Request">GraphQL HTTP Request</a></li>
<li><bug>65864</bug>Catch <code>NullPointerException</code> from JSoup when recording a test plan</li>
</ul>
<h3>Other Samplers</h3>
<ul>
<li><bug>65152</bug>OS Process Sampler – Cannot <code>Add from Clipboard</code> Command parameters</li>
<li><pr>638</pr>Bolt Sampler: fixed error displaying results when "Record Query Results" is enabled. Contributed by
David Pecollet (david.pecollet at gmail.com)</li>
</ul>
<h3>Controllers</h3>
<ul>
</ul>
<h3>Listeners</h3>
<ul>
<li><bug>64962</bug>Save CSV sub-results recursively from View Results Tree</li>
<li><bug>65784</bug>No Graphs displayed in Aggregate Report/Response Time Graph</li>
<li><bug>65884</bug>GUI doesn't display response for multipart request <em>manually</em> encoded</li>
</ul>
<h3>Timers, Assertions, Config, Pre- & Post-Processors</h3>
<ul>
<li><bug>65257</bug>JMESPathExtractor writes error log entries if JMESPath filter returns empty result</li>
<li><bug>65259</bug>JMESPathExtractor Attribute <code>Match No.</code> Required</li>
<li><bug>65269</bug>JSON Extractor and JSON JMESPath Extractor ignore sub-samples</li>
<li><bug>65352</bug>Warning logged when Boundary Extractor doesn't find any match</li>
<li><bug>65681</bug>Use default values for <code>null</code> values when extracting with JSONPostProcessor</li>
<li>Allow setters in ConstantThroughputTimer to update the values during run time</li>
<li><bug>65782</bug>Use correct message format for MessageFormat in HTMLAssertion</li>
<li><bug>65794</bug>JSON Assertion always successful with indefinite paths</li>
</ul>
<h3>Functions</h3>
<ul>
</ul>
<h3>I18N</h3>
<ul>
</ul>
<h3>Report / Dashboard</h3>
<ul>
</ul>
<h3>Documentation</h3>
<ul>
<li><pr>658</pr>Improve javadoc. Contributed by Ori Marko (orimarko at gmail.com)</li>
</ul>
<h3>General</h3>
<ul>
<li><bug>64318</bug>DNS Cache Manager – custom DNS resolver does not use system resolver by default</li>
<li><pr>641</pr><pr>698</pr>Updated xercesImpl to 2.12.2 (from 2.12.0). Based on patch by Stefan Seide (stefan at trilobyte-se.de).</li>
<li><pr>645</pr>Add escaping for new lines in <code>AbstractInfluxdbMetricsSender</code>. Contributed by David Getzlaff (david.getzlaff at t-systems.com>)</li>
<li><bug>65198</bug>Can't copy generated function from FunctionHelper</li>
<li><pr>661</pr>Fix wording in doc. Contributed by BugKing (wangzhen at fit2cloud.com)</li>
<li><pr>664</pr>Allow whitespace in path. Contributed by Till Neunast (github.com/tilln)</li>
<li><bug>65270</bug>POST <code>application/x-www-form-urlencoded</code> cURL code generated from Postman is not imported correctly</li>
<li>Silence warnings of missing font Arial on startup under Linux</li>
<li><bug>65300</bug><code>IllegalAccessError</code> when opening file dialog with Java 16</li>
<li><bug>65336</bug>Blank labels when different elements had the same name</li>
<li><bug>65522</bug>Restart doesn't work, when parameters contain spaces</li>
<li><bug>63914</bug>Simplify <code>:src:dist:clean</code> configuration, ensure <code>/lib/junit/test.jar</code> is removed on clean</li>
<li><pr>696</pr>Keep JSyntaxTextArea text value for use in headless mode. Contributed by Peter Paul Bakker (peter.paul.bakker at stokpop.nl)</li>
</ul>
<!-- =================== Thanks =================== -->
<ch_section>Thanks</ch_section>
<p>We thank all contributors mentioned in bug and improvement sections above:
</p>
<ul>
<li>Stefan Seide (stefan at trilobyte-se.de)</li>
<li>njzukas (github.com/njzukas)</li>
<li>David Getzlaff (david.getzlaff at t-systems.com>)</li>
<li>Konstantin Kalinin (konstantin at kkalinin.pro)</li>
<li>David Pecollet (david.pecollet at gmail.com)</li>
<li>Ori Marko (orimarko at gmail.com)</li>
<li>BugKing (wangzhen at fit2cloud.com)</li>
<li>Till Neunast (github.com/tilln)</li>
<li>Baptiste Gaillard (baptiste.gaillard at gmail.com)</li>
<li>Rithvik Patibandla (rithvikp98 at gmail.com)</li>
<li>Mariusz (mawasak at gmail.com)</li>
<li>peter.wong@csexperts.com</li>
<li>Woonsan Ko (woonsan.ko at bloomreach.com)</li>
<li>Chromico Rek (atech5122 at gmail.com)</li>
<li>Magnus Spångdal (magnus.spangdal as avanza.se)</li>
<li>Piotr Smietana (piotrsmietana1998 at gmail.com)</li>
<li>Sampath Kumar Krishnasamy (sampathkumar.krishnasamykuppusamy at aexp.com)</li>
<li>Ji Hun (jihunkimkw at gmail.com)</li>
<li>Peter Paul Bakker (peter.paul.bakker at stokpop.nl)</li>
<li>NaveenKumar Namachivayam (catch.nkn at gmail.com)</li>
<li>Wilson Kurniawan (wilson at visenze.com)</li>
</ul>
<p>We also thank bug reporters who helped us improve JMeter.</p>
<ul>
<li>Nikola Aleksic (nalexic at gmail.com)</li>
<li>Vladimir Rosu (rosuvladimir at gmail.com)</li>
</ul>
<p>
Apologies if we have omitted anyone else.
</p>
<!-- =================== Known bugs or issues related to JAVA Bugs =================== -->
<ch_section>Known problems and workarounds</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 <code>0</code> (see <bugzilla>55510</bugzilla>).
</li>
<li>
Note that under some windows systems you may have this WARNING:
<source>
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.
</source>
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>
You may encounter the following error:
<source>java.security.cert.CertificateException: Certificates does not conform to algorithm constraints</source>
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 <code>md2WithRSAEncryption</code>) or with a SSL certificate with a size lower than 1024 bits.
This error is related to increased security in Java 8+.
<br></br>
To allow you to perform your HTTPS request, you can downgrade the security of your Java installation by editing
the Java <code>jdk.certpath.disabledAlgorithms</code> property. Remove the MD2 value or the constraint on size, depending on your case.
<br></br>
This property is in this file:
<source>JAVA_HOME/jre/lib/security/java.security</source>
See <bugzilla>56357</bugzilla> for details.
</li>
<li>
Under Mac OSX Aggregate Graph will show wrong values due to mirroring effect on numbers.
This is due to a known Java bug, see Bug <a href="https://bugs.openjdk.java.net/browse/JDK-8065373" >JDK-8065373</a>
The fix is to use JDK8_u45 or later.
</li>
<li>
View Results Tree may fail to display some HTML code under HTML renderer, see <bugzilla>54586</bugzilla>.
This is due to a known Java bug which fails to parse "<code>px</code>" units in row/col attributes.
See Bug <a href="https://bugs.openjdk.java.net/browse/JDK-8031109" >JDK-8031109</a>
The fix is to use JDK9 b65 or later.
</li>
<li>
JTable selection with keyboard (<keycombo><keysym>SHIFT</keysym><keysym>up/down</keysym></keycombo>) is totally unusable with Java 7 on Mac OSX.
This is due to a known Java bug <a href="https://bugs.openjdk.java.net/browse/JDK-8025126" >JDK-8025126</a>
The fix is to use JDK 8 b132 or later.
</li>
<li>
Since Java 11 the JavaScript implementation <a href="https://openjdk.java.net/jeps/335">Nashorn has been deprecated</a>.
Java will emit the following deprecation warnings, if you are using JavaScript based on Nashorn.
<source>
Warning: Nashorn engine is planned to be removed from a future JDK release
</source>
To silence these warnings, add <code>-Dnashorn.args=--no-deprecation-warning</code> to your Java arguments.
That can be achieved by setting the enviroment variable <code>JVM_ARGS</code>
<source>