diff --git a/.all-contributorsrc b/.all-contributorsrc
index 5d8c873f7e..4232eb2de6 100644
--- a/.all-contributorsrc
+++ b/.all-contributorsrc
@@ -7296,6 +7296,15 @@
"contributions": [
"doc"
]
+ },
+ {
+ "login": "219sansim",
+ "name": "219sansim",
+ "avatar_url": "https://avatars.githubusercontent.com/u/108684604?v=4",
+ "profile": "https://github.com/219sansim",
+ "contributions": [
+ "code"
+ ]
}
],
"contributorsPerLine": 7,
diff --git a/docs/pages/pmd/projectdocs/credits.md b/docs/pages/pmd/projectdocs/credits.md
index 63140f4a23..819a35f4de 100644
--- a/docs/pages/pmd/projectdocs/credits.md
+++ b/docs/pages/pmd/projectdocs/credits.md
@@ -16,1021 +16,1022 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
 0xflotus π» π |
 1henni π |
+  219sansim π» |
 ALiNew π |
 ASBrouwers π» |
 Abhijit Sarkar π |
 Abhishek Kumar π |
-  Adam π |
+  Adam π |
 Adam Carroll π |
 Adam Obuchowicz π |
 Adrian Price π |
 Adrien Lecharpentier π |
 Aidan Harding π |
 Akshat Bahety π» π |
-  Akshay Thapa π |
+  Akshay Thapa π |
 Alan Buttars π |
 Alan Hohn π |
 Alberto FernΓ‘ndez π» π |
 Alex π» |
 Alex π |
 Alex Rentz π |
-  Alex Saveau π |
+  Alex Saveau π |
 Alex Shesterov π» π |
 Alexey Markevich π |
 Alexey Naumov π |
 Alexey Yudichev π |
 Alix π |
 Alix π |
-  Amish Shah π |
+  Amish Shah π |
 Amit Prasad π |
 Amitosh Swain Mahapatra π |
 Anand Subramanian π» π |
 Anastasiia Koba π» |
 Anatoly Trosinenko π» π |
 Andi Pabst π» π |
-  Andrea π |
+  Andrea π |
 Andrea Aime π |
 Andreas Dangel π» π π π§ |
 Andreas Deininger π |
 Andreas Markussen π |
 Andreas Schmid π |
 Andreas Turban π |
-  Andrei Paikin π |
+  Andrei Paikin π |
 Andrew π |
 Andrew Green π |
 Andrey Bozhko π |
 Andrey Fomin π |
 Andrey Hitrin π |
 Andrey Mochalov π» π |
-  Andro72 π |
+  Andro72 π |
 Andrwyw π |
 AndrΓ©s CatalΓ‘n π |
 Andy Pattenden π |
 Andy Ray π |
 Andy Robinson π |
 Andy-2639 π |
-  Ankush Somani π |
+  Ankush Somani π |
 Anmol Kumar π |
 Anthony Whitford π |
 AnthonyKot π |
 Aravind Hegde π |
 Arda Aslan π |
 Ari Fogel π |
-  Arnaud Jeansen π» π |
+  Arnaud Jeansen π» π |
 Arpit Koolwal π |
 Artem π» π |
 Artem π |
 Artem Sheremet π |
 Artur π |
 Artur Bosch π |
-  Artur Dryomov π |
+  Artur Dryomov π |
 Artur Ossowski π |
 AshTheMash π |
 Ashish Rana π |
 Atul Kaushal π |
 August Boland π |
 Aurel Hudec π |
-  Austin π |
+  Austin π |
 Austin Shalit π |
 Austin Tice π |
 Ayoub Kaanich π |
 BBG π» π π |
 Bailey Tjiong π» |
 BarthΓ©lemy L. π |
-  Basavaraj K N π |
+  Basavaraj K N π |
 Basil Peace π |
 Belle π |
 Ben Lerner π |
 Ben Manes π |
 Ben McCann π |
 BendegΓΊz Nagy π |
-  Bennet S Yee π |
+  Bennet S Yee π |
 Benoit Lacelle π |
 Bernardo MacΓͺdo π |
 Bernd Farka π |
 Betina Cynthia Mamani π |
 Bhanu Prakash Pamidi π» π |
 Bhargav Thanki π |
-  Binu R J π |
+  Binu R J π |
 BjΓΆrn Kautler π» π |
 Blightbuster π |
 Bo Zhang π |
 Bob "Wombat" Hogg π |
 Bobby Wertman π |
 Bolarinwa Saheed Olayemi π» π |
-  Boris Petrov π |
+  Boris Petrov π |
 Brad Kent π |
 Brandon Mikeska π |
 Brian Batronis π |
 Brian Johnson π |
 Brice Dutheil π» π |
 Bruno Ferreira π |
-  Bruno Harbulot π |
+  Bruno Harbulot π |
 Bruno Ritz π |
 Cameron Donaldson π |
 Carlos Macasaet π |
 Carsten Otto π |
 Charlie Housh π |
 Charlie Jonas π |
-  Chas Honton π |
+  Chas Honton π |
 Chen Yang π |
 Chotu π |
 Chris Smith π |
 Chris Toomey π |
 Christian Hujer π |
 Christian Pontesegger π |
-  ChristianWulf π |
+  ChristianWulf π |
 Christofer Dutz π» |
 Christoffer Anselm π |
 Christophe Vidal π |
 Christopher Dancy π |
 Clemens Prill π |
 Clint Chester π» π |
-  ClΓ©ment Fournier π» π π π§ |
+  ClΓ©ment Fournier π» π π π§ |
 Codacy Badger π |
 Code-Nil π |
 ColColonCleaner π |
 Colin Ingarfield π |
 Craig Andrews π |
 Craig Muchinsky π |
-  Cyril π» π |
+  Cyril π» π |
 Dale π» |
 Damien Jiang π |
 Dan Berindei π |
 Dan Rollo π |
 Dan Ziemba π |
 Daniel Gredler π» π |
-  Daniel Jipa π |
+  Daniel Jipa π |
 Daniel Paul Searles π» |
 Daniel Reigada π |
 Danilo Pianini π |
 Darko π |
 David π |
 David Atkinson π |
-  David BurstrΓΆm π» π |
+  David BurstrΓΆm π» π |
 David GoatΓ© π |
 David Golpira π |
 David KovaΕΓk π |
 David M. Karr (fullname at gmail.com) π |
 David Renz π» π |
 David Renz π |
-  Dawid Ciok π π» |
+  Dawid Ciok π π» |
 Deleted user π |
 Dell Green π |
 Dem Pilafian π |
 Den π |
 Denis Borovikov π» π |
 Dennie Reniers π» π |
-  Dennis Kieselhorst π |
+  Dennis Kieselhorst π |
 Derek P. Moore π |
 Dichotomia π |
 Dionisio CortΓ©s FernΓ‘ndez π» π |
 Dmitri Bourlatchkov π |
 Dmitriy Kuzmin π |
 Dmytro Dashenkov π |
-  Drew Hall π |
+  Drew Hall π |
 Dumitru Postoronca π |
 Dylan Adams π |
 Eden Hao π |
 Edward Klimoshenko π π» |
 Egor Bredikhin π |
 Elan P. Kugelmass π |
-  Elder S. π |
+  Elder S. π |
 Eldrick Wega π |
 Emile π |
 Eric π |
 Eric Kintzer π |
 Eric Perret π |
 Eric Squires π |
-  Erich L Foster π |
+  Erich L Foster π |
 Erik Bleske π |
 Erik C. Thauvin π |
 Ernst Reissner π |
 Ewan Tempero π |
 F.W. Dekker π |
 FSchliephacke π |
-  Facundo π |
+  Facundo π |
 Federico Giust π |
 Fedor Sherstobitov π |
 Felix Lampe π |
 Filip Golonka π |
 Filipe Esperandio π» π |
 Filippo Nova π |
-  Francesco la Torre π |
+  Francesco la Torre π |
 Francisco Duarte π |
 Frieder Bluemle π |
 Frits Jalvingh π» π |
 G. Bazior π |
 Gabe Henkes π |
 Gary Gregory π |
-  Genoud Magloire π |
+  Genoud Magloire π |
 Geoffrey555 π |
 Georg Romstorfer π |
 Gio π |
 Gol π |
 Gonzalo Exequiel Ibars Ingman π» π |
 GooDer π |
-  Gregor Riegler π |
+  Gregor Riegler π |
 Grzegorz Olszewski π |
 Gunther Schrijvers π» π |
 Gustavo Krieger π |
 Guy Elsmore-Paddock π |
 GΓΆrkem MΓΌlayim π |
 Hanzel Godinez π |
-  Haoliang Chen π |
+  Haoliang Chen π |
 Harsh Kukreja π |
 Hassan ALAMI π |
 Heber π |
 Henning Schmiedehausen π» π |
 Henning von Bargen π» |
 HervΓ© Boutemy π |
-  Himanshu Pandey π |
+  Himanshu Pandey π |
 Hokwang Lee π |
 Hooperbloob π» |
 Hung PHAN π |
 IDoCodingStuffs π» π |
 Iccen Gan π |
 Ignacio Mariano Tirabasso π |
-  Igor Melnichenko π |
+  Igor Melnichenko π |
 Igor Moreno π |
 Intelesis-MS π |
 Iroha_ π |
 Ishan Srivastava π |
 Ivano Guerini π |
 Ivar Andreas Bonsaksen π |
-  Ivo Ε mΓd π |
+  Ivo Ε mΓd π |
 JJengility π |
 Jake Hemmerle π |
 James Harrison π π» |
 Jan π |
 Jan Aertgeerts π» π |
 Jan BrΓΌmmer π |
-  Jan TΕΓska π |
+  Jan TΕΓska π |
 Jan-Lukas Else π |
 Jason Qiu π» π |
 Jason Williams π |
 Jean-Paul Mayer π |
 Jean-Simon Larochelle π |
 Jeff Bartolotta π» π |
-  Jeff Hube π» π |
+  Jeff Hube π» π |
 Jeff Jensen π |
 Jeff May π |
 Jens Gerdes π |
 Jeroen Borgers π π» π’ |
 Jeroen van Wilgenburg π |
 Jerome Russ π |
-  JerritEic π» π π |
+  JerritEic π» π π |
 Jiri Pejchal π |
 Jithin Sunny π |
 JiΕΓ Ε korpil π |
 Joao Machado π |
 Jochen Krauss π |
 Johan Hammar π |
-  John Karp π |
+  John Karp π |
 John Zhang π |
 John-Teng π» π |
 Jon Moroney π» π |
 Jonas Geiregat π |
 Jonathan Wiesel π» π |
 Jordan π |
-  Jordi Llach π |
+  Jordi Llach π |
 Jorge SolΓ³rzano π |
 JorneVL π |
 Jose Palafox π |
 Jose Stovall π |
 Joseph π» |
 Joseph Heenan π |
-  Josh Feingold π» π |
+  Josh Feingold π» π |
 Josh Holthaus π |
 Joshua S Arquilevich π |
 JoΓ£o Dinis Ferreira π |
 JoΓ£o Ferreira π» π |
 JoΓ£o Pedro Schmitt π |
 Juan MartΓn Sotuyo Dodero π» π π π§ |
-  Juan Pablo Civile π |
+  Juan Pablo Civile π |
 Julian Voronetsky π |
 Julien π |
 Julius π |
 JustPRV π |
 JΓΆrn Huxhorn π |
 KThompso π |
-  Kai Amundsen π |
+  Kai Amundsen π |
 Karel Vervaeke π |
 Karl-Andero Mere π |
 Karl-Philipp Richter π |
 Karsten Silz π |
 Kazuma Watanabe π |
 Kev π |
-  Keve MΓΌller π |
+  Keve MΓΌller π |
 Kevin Guerra π» |
 Kevin Jones π π» |
 Kevin Wayne π |
 Kieran Black π |
 Kirill Zubov π |
 Kirk Clemens π» π |
-  Klaus Hartl π |
+  Klaus Hartl π |
 Koen Van Looveren π |
 Kris Scheibe π» π |
 Krystian Dabrowski π π» |
 Kunal Thanki π |
 LaLucid π» |
 Larry Diamond π» π |
-  Lars Knickrehm π |
+  Lars Knickrehm π |
 Leo Gutierrez π |
 LiGaOg π» |
 Liam Sharp π |
 Lintsi π |
 Linus Fernandes π |
 Lixon Lookose π |
-  Logesh π |
+  Logesh π |
 Lorenzo Gabriele π |
 LoΓ―c Ledoyen π |
 Lucas Silva π |
 Lucas Soncini π» π |
 Luis Alcantar π» |
 Lukasz Slonina π |
-  Lukebray π |
+  Lukebray π |
 Lynn π» π |
 Lyor Goldstein π |
 MCMicS π |
 Macarse π |
 Machine account for PMD π» |
 Maciek Siemczyk π |
-  Maikel Steneker π» π |
+  Maikel Steneker π» π |
 Maksim Moiseikin π |
 Manfred Koch π |
 Manuel Moya Ferrer π» π |
 Manuel Ryan π |
 Marat Vyshegorodtsev π |
 Marcel HΓ€rle π |
-  Marcello Fialho π |
+  Marcello Fialho π |
 Marcin Rataj π |
 Marcono1234 π |
 Mark Adamcin π |
 Mark Hall π» π |
 Mark Kolich π |
 Mark Pritchard π |
-  Markus Rathgeb π |
+  Markus Rathgeb π |
 Marquis Wang π |
 MartGit π |
 Martin Feldsztejn π |
 Martin Lehmann π |
 Martin Spamer π |
 Martin TarjΓ‘nyi π |
-  MatFl π |
+  MatFl π |
 Mateusz Stefanski π |
 Mathieu Gouin π |
 MatiasComercio π» π |
 Matt Benson π |
 Matt De Poorter π |
 Matt Hargett π» π΅ |
-  Matt Harrah π |
+  Matt Harrah π |
 Matt Nelson π |
 Matthew Amos π |
 Matthew Duggan π |
 Matthew Hall π |
 MatΓas Fraga π» π |
 Maxime Robert π» π |
-  MetaBF π |
+  MetaBF π |
 Michael π |
 Michael Bell π |
 Michael Bernstein π |
 Michael Clay π |
 Michael Dombrowski π |
 Michael Hausegger π |
-  Michael Hoefer π |
+  Michael Hoefer π |
 Michael MΓΆbius π |
 Michael N. Lipp π |
 Michael Pellegrini π |
 Michal Kordas π |
 MichaΕ Borek π |
 MichaΕ KuliΕski π |
-  Miguel NΓΊΓ±ez DΓaz-Montes π |
+  Miguel NΓΊΓ±ez DΓaz-Montes π |
 Mihai Ionut π |
 Mirek Hankus π |
 Mladjan Gadzic π |
 MrAngry52 π |
 Muminur Choudhury π |
 Mykhailo Palahuta π» π |
-  Nagendra Kumar Singh π |
+  Nagendra Kumar Singh π |
 Nahuel Barrios π |
 Nathan Braun π |
 Nathan Reynolds π |
 Nathan Reynolds π |
 NathanaΓ«l π |
 Naveen π» |
-  Nazdravi π |
+  Nazdravi π |
 Neha-Dhonde π |
 Nicholas Doyle π |
 Nick Butcher π |
 Nico Gallinal π |
 Nicola Dal Maso π |
 Nicolas Filotto π» |
-  Nicolas Vervelle π |
+  Nicolas Vervelle π |
 Nicolas Vuillamy π |
 Nikita Chursin π |
 Niklas Baudy π |
 Nikolas Havrikov π |
 Nilesh Virkar π |
 Nimit Patel π |
-  Niranjan Harpale π |
+  Niranjan Harpale π |
 Nirvik Patel π» |
 Noah Sussman π |
 Noah0120 π |
 Noam Tamim π |
 Noel Grandin π |
 Olaf Haalstra π |
-  Oleg Andreych π» π |
+  Oleg Andreych π» π |
 Oleg Pavlenko π |
 Oleksii Dykov π» π |
 Oliver Eikemeier π |
 Oliver Siegmar π΅ |
 Olivier Parent π» π |
 Ollie Abbey π» π |
-  OverDrone π |
+  OverDrone π |
 Ozan Gulle π» π |
 PUNEET JAIN π |
 Parbati Bose π |
 Paul Berg π |
 Paul Guyot π» |
 Pavel Bludov π |
-  Pavel MiΔka π |
+  Pavel MiΔka π |
 Pedro Nuno Santos π |
 Pedro Rijo π |
 Pelisse Romain π» π π |
 Per Abich π» |
 Pete Davids π |
 Peter Bruin π |
-  Peter Chittum π» π |
+  Peter Chittum π» π |
 Peter Cudmore π |
 Peter Kasson π |
 Peter Kofler π |
 Peter Paul Bakker π» |
 Pham Hai Trung π |
 Philip Graf π» π |
-  Philip Hachey π |
+  Philip Hachey π |
 Philippe Ozil π |
 Phinehas Artemix π |
 Phokham Nonava π |
 Pim van der Loos π» β οΈ |
 Piotr SzymaΕski π |
 Piotrek Ε»ygieΕo π» π π |
-  Pranay Jaiswal π |
+  Pranay Jaiswal π |
 Prasad Kamath π |
 Prasanna π |
 Presh-AR π |
 Puneet1726 π |
 Rafael CortΓͺs π |
 RaheemShaik999 π |
-  RajeshR π» π |
+  RajeshR π» π |
 Ramachandra Mohan π |
 Ramel0921 π |
 Raquel Pau π |
 Ravikiran Janardhana π |
 Reda Benhemmouche π |
 Renato Oliveira π» π |
-  Rich DiCroce π |
+  Rich DiCroce π |
 Richard Corfield π» |
 Richard Corfield π π» |
 Riot R1cket π |
 Rishabh Jain π |
 RishabhDeep Singh π |
 Robbie Martinus π» π |
-  Robert Henry π |
+  Robert Henry π |
 Robert Mihaly π |
 Robert Painsi π |
 Robert Russell π |
 Robert SΓΆsemann π» π π’ π |
 Robert Whitebit π |
 Robin Richtsfeld π |
-  Robin Stocker π» π |
+  Robin Stocker π» π |
 Robin Wils π |
 RochusOest π |
 Rodolfo Noviski π |
 Rodrigo Casara π |
 Rodrigo Fernandes π |
 Roman Salvador π» π |
-  Ronald Blaschke π |
+  Ronald Blaschke π |
 RΓ³bert Papp π |
 Saikat Sengupta π |
 Saksham Handu π |
 Saladoc π |
 Salesforce Bob Lightning π |
 Sam Carlberg π |
-  Satoshi Kubo π |
+  Satoshi Kubo π |
 Scott Kennedy π |
 Scott Wells π π» |
 Scrsloota π» |
 Sebastian BΓΆgl π |
 Sebastian Schuberth π |
 Sebastian Schwarz π |
-  Seren π π» |
+  Seren π π» |
 Sergey Gorbaty π |
 Sergey Kozlov π |
 Sergey Yanzin π» π |
 Seth Wilcox π» |
 Shai Bennathan π π» |
 Shubham π» π |
-  Simon Abykov π» π |
+  Simon Abykov π» π |
 Simon Xiao π |
 Srinivasan Venkatachalam π |
 Stanislav Gromov π |
 Stanislav Myachenkov π» |
 Stefan Birkner π |
 Stefan Bohn π |
-  Stefan Endrullis π |
+  Stefan Endrullis π |
 Stefan KlΓΆss-Schuster π |
 Stefan Wolf π |
 Stephan H. Wissel π |
 Stephen π |
 Stephen Friedrich π |
 Steve Babula π» |
-  Steven Stearns π π» |
+  Steven Stearns π π» |
 Stexxe π |
 Stian LΓ₯gstad π |
 StuartClayton5 π |
 Supun Arunoda π |
 Suren Abrahamyan π |
 Suvashri π |
-  SwatiBGupta1110 π |
+  SwatiBGupta1110 π |
 SyedThoufich π |
 Szymon Sasin π |
 T-chuangxin π |
 TERAI Atsuhiro π |
 TIOBE Software π» π |
 Tarush Singh π» |
-  Taylor Smock π |
+  Taylor Smock π |
 Techeira DamiΓ‘n π» π |
 Ted Husted π |
 TehBakker π |
 The Gitter Badger π |
 Theodoor π |
 Thiago Henrique HΓΌpner π |
-  Thibault Meyer π |
+  Thibault Meyer π |
 Thomas GΓΌttler π |
 Thomas Jones-Low π |
 Thomas Smith π» π |
 ThrawnCA π |
 Thunderforge π» π |
 Tim van der Lippe π |
-  Tobias Weimer π» π |
+  Tobias Weimer π» π |
 Tom Copeland π π» π |
 Tom Daly π |
 Tomer Figenblat π |
 Tomi De Lucca π» π |
 Torsten Kleiber π |
 TrackerSB π |
-  Tyson Stewart π |
+  Tyson Stewart π |
 Ullrich Hafner π |
 Utku Cuhadaroglu π» π |
 Valentin Brandl π |
 Valeria π |
 Valery Yatsynovich π |
 Vasily Anisimov π |
-  Vibhor Goyal π |
+  Vibhor Goyal π |
 Vickenty Fesunov π |
 Victor NoΓ«l π |
 Vincent Galloy π» |
 Vincent HUYNH π |
 Vincent Maurin π |
 Vincent Privat π |
-  Vishhwas π |
+  Vishhwas π |
 Vitaly π |
 Vitaly Polonetsky π |
 Vojtech Polivka π |
 Vsevolod Zholobov π |
 Vyom Yadav π» |
 Wang Shidong π |
-  Waqas Ahmed π |
+  Waqas Ahmed π |
 Wayne J. Earl π |
 Wchenghui π |
 Wener π» |
 Will Winder π |
 William Brockhus π» π |
 Wilson Kurniawan π |
-  Wim Deblauwe π |
+  Wim Deblauwe π |
 Woongsik Choi π |
 XenoAmess π» π |
 Yang π» |
 YaroslavTER π |
 Yasar Shaikh π» |
 Young Chan π» π |
-  YuJin Kim π |
+  YuJin Kim π |
 Yuri Dolzhenko π |
 Yurii Dubinka π |
 Zoltan Farkas π |
 Zustin π |
 aaronhurst-google π π» |
 alexmodis π |
-  andreoss π |
+  andreoss π |
 andrey81inmd π» π |
 anicoara π |
 arunprasathav π |
 asiercamara π |
 astillich-igniti π» |
 avesolovksyy π |
-  avishvat π |
+  avishvat π |
 avivmu π |
 axelbarfod1 π |
 b-3-n π |
 balbhadra9 π |
 base23de π |
 bergander π |
-  berkam π» π |
+  berkam π» π |
 breizh31 π |
 caesarkim π |
 carolyujing π |
 cbfiddle π |
 cesares-basilico π |
 chrite π |
-  ciufudean π |
+  ciufudean π |
 cobratbq π |
 coladict π |
 cosmoJFH π |
 cristalp π |
 crunsk π |
 cwholmes π |
-  cyberjj999 π |
+  cyberjj999 π |
 cyw3 π π |
 d1ss0nanz π |
 dague1 π |
 dalizi007 π» |
 danbrycefairsailcom π |
 dariansanity π |
-  darrenmiliband π |
+  darrenmiliband π |
 davidburstrom π |
 dbirkman-paloalto π |
 deepak-patra π |
 dependabot[bot] π» π |
 dinesh150 π |
 diziaq π |
-  dreaminpast123 π |
+  dreaminpast123 π |
 duanyanan π |
 dutt-sanjay π |
 dylanleung π |
 dzeigler π |
 eant60 π |
 ekkirala π |
-  emersonmoura π |
+  emersonmoura π |
 eugenepugach π |
 fairy π |
 filiprafalowicz π» |
 foxmason π |
 frankegabor π |
 frankl π |
-  freafrea π |
+  freafrea π |
 fsapatin π |
 gracia19 π |
 guo fei π |
 gurmsc5 π |
 gwilymatgearset π» π |
 haigsn π |
-  hemanshu070 π |
+  hemanshu070 π |
 henrik242 π |
 hongpuwu π |
 hvbtup π» π |
 igniti GmbH π |
 ilovezfs π |
 itaigilo π |
-  jakivey32 π |
+  jakivey32 π |
 jbennett2091 π |
 jcamerin π |
 jkeener1 π |
 jmetertea π |
 johnra2 π» |
 josemanuelrolon π» π |
-  kabroxiko π» π |
+  kabroxiko π» π |
 karwer π |
 kaulonline π |
 kdaemonv π |
 kdebski85 π π» |
 kenji21 π» π |
 kfranic π |
-  khalidkh π |
+  khalidkh π |
 koalalam π |
 krzyk π |
 lasselindqvist π |
 lgemeinhardt π |
 lihuaib π |
 lonelyma1021 π |
-  lpeddy π |
+  lpeddy π |
 lujiefsi π» |
 lukelukes π» |
 lyriccoder π |
 marcelmore π |
 matchbox π |
 matthiaskraaz π |
-  meandonlyme π |
+  meandonlyme π |
 mikesive π |
 milossesic π |
 mluckam π» |
 mohan-chinnappan-n π» |
 mriddell95 π |
 mrlzh π |
-  msloan π |
+  msloan π |
 mucharlaravalika π |
 mvenneman π |
 nareshl119 π |
 nicolas-harraudeau-sonarsource π |
 noerremark π |
 novsirion π |
-  nwcm π π |
+  nwcm π π |
 oggboy π |
 oinume π |
 orimarko π» π |
 pacvz π» |
 pallavi agarwal π |
 parksungrin π |
-  patpatpat123 π |
+  patpatpat123 π |
 patriksevallius π |
 pbrajesh1 π |
 phoenix384 π |
 piotrszymanski-sc π» |
 plan3d π |
 poojasix π |
-  prabhushrikant π |
+  prabhushrikant π |
 pujitha8783 π |
 r-r-a-j π |
 raghujayjunk π |
 rajeshveera π |
 rajeswarreddy88 π |
 recdevs π |
-  reudismam π» π |
+  reudismam π» π |
 rijkt π |
 rillig-tk π |
 rmohan20 π» π |
 rnveach π |
 rxmicro π |
 ryan-gustafson π» π |
-  sabi0 π |
+  sabi0 π |
 scais π |
 sebbASF π |
 sergeygorbaty π» |
 shilko2013 π |
 shiomiyan π |
 simeonKondr π |
-  snajberk π |
+  snajberk π |
 sniperrifle2004 π |
 snuyanzin π π» |
 sratz π |
 stonio π |
 sturton π» π |
 sudharmohan π |
-  suruchidawar π |
+  suruchidawar π |
 svenfinitiv π |
 tashiscool π |
 test-git-hook π |
 testation21 π» π |
 thanosa π |
 tiandiyixian π |
-  tobwoerk π |
+  tobwoerk π |
 tprouvot π π» |
 trentchilders π |
 triandicAnt π |
 trishul14 π |
 tsui π |
 winhkey π |
-  witherspore π |
+  witherspore π |
 wjljack π |
 wuchiuwong π |
 xingsong π |
 xioayuge π |
 xnYi9wRezm π» π |
 xuanuy π |
-  xyf0921 π |
+  xyf0921 π |
 yalechen-cyw3 π |
 yasuharu-sato π |
 zenglian π |
 zgrzyt93 π» π |
 zh3ng π |
 zt_soft π |
-  ztt79 π |
+  ztt79 π |
 zzzzfeng π |
 ΓrpΓ‘d MagosΓ‘nyi π |
 δ»»θ΄΅ζ° π |
diff --git a/docs/pages/release_notes.md b/docs/pages/release_notes.md
index 905f044caa..41e89d2ab9 100644
--- a/docs/pages/release_notes.md
+++ b/docs/pages/release_notes.md
@@ -89,6 +89,7 @@ in the Migration Guide.
* [#4723](https://github.com/pmd/pmd/issues/4723): \[cli] Launch fails for "bash pmd"
* core
* [#1027](https://github.com/pmd/pmd/issues/1027): \[core] Apply the new PropertyDescriptor<Pattern> type where applicable
+ * [#4750](https://github.com/pmd/pmd/pull/4750): \[core] Fix flaky SummaryHTMLRenderer
* doc
* [#3175](https://github.com/pmd/pmd/issues/3175): \[doc] Document language module features
* [#4659](https://github.com/pmd/pmd/pull/4659): \[doc] Improve ant documentation
@@ -132,6 +133,7 @@ The following previously deprecated classes have been removed:
* [#4677](https://github.com/pmd/pmd/pull/4677): \[apex] Add new rule: OperationWithHighCostInLoop - [Thomas Prouvot](https://github.com/tprouvot) (@tprouvot)
* [#4719](https://github.com/pmd/pmd/pull/4719): \[java] UnnecessaryCaseChange: example doc toUpperCase() should compare to a capitalized string - [ciufudean](https://github.com/ciufudean) (@ciufudean)
* [#4738](https://github.com/pmd/pmd/pull/4738): \[doc] Added reference to the PMD extension for bld - [Erik C. Thauvin](https://github.com/ethauvin) (@ethauvin)
+* [#4750](https://github.com/pmd/pmd/pull/4750): \[core] Fix flaky SummaryHTMLRenderer - [219sansim](https://github.com/219sansim) (@219sansim)
### π Major Features and Enhancements
@@ -524,6 +526,7 @@ See also [Detailed Release Notes for PMD 7]({{ baseurl }}pmd_release_notes_pmd7.
* [#4454](https://github.com/pmd/pmd/issues/4454): \[core] "Unknown option: '-min'" but is referenced in documentation
* [#4611](https://github.com/pmd/pmd/pull/4611): \[core] Fix loading language properties from env vars
* [#4621](https://github.com/pmd/pmd/issues/4621): \[core] Make `ClasspathClassLoader::getResource` child first
+ * [#4750](https://github.com/pmd/pmd/pull/4750): \[core] Fix flaky SummaryHTMLRenderer
* cli
* [#2234](https://github.com/pmd/pmd/issues/2234): \[core] Consolidate PMD CLI into a single command
* [#3828](https://github.com/pmd/pmd/issues/3828): \[core] Progress reporting
@@ -788,6 +791,7 @@ Language specific fixes:
* [#4677](https://github.com/pmd/pmd/pull/4677): \[apex] Add new rule: OperationWithHighCostInLoop - [Thomas Prouvot](https://github.com/tprouvot) (@tprouvot)
* [#4719](https://github.com/pmd/pmd/pull/4719): \[java] UnnecessaryCaseChange: example doc toUpperCase() should compare to a capitalized string - [ciufudean](https://github.com/ciufudean) (@ciufudean)
* [#4738](https://github.com/pmd/pmd/pull/4738): \[doc] Added reference to the PMD extension for bld - [Erik C. Thauvin](https://github.com/ethauvin) (@ethauvin)
+* [#4750](https://github.com/pmd/pmd/pull/4750): \[core] Fix flaky SummaryHTMLRenderer - [219sansim](https://github.com/219sansim) (@219sansim)
### π Stats
* 5007 commits
diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/renderers/SummaryHTMLRenderer.java b/pmd-core/src/main/java/net/sourceforge/pmd/renderers/SummaryHTMLRenderer.java
index 2632fc7297..20272afb30 100644
--- a/pmd-core/src/main/java/net/sourceforge/pmd/renderers/SummaryHTMLRenderer.java
+++ b/pmd-core/src/main/java/net/sourceforge/pmd/renderers/SummaryHTMLRenderer.java
@@ -5,7 +5,7 @@
package net.sourceforge.pmd.renderers;
import java.io.IOException;
-import java.util.HashMap;
+import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Map.Entry;
@@ -74,7 +74,7 @@ public class SummaryHTMLRenderer extends AbstractAccumulatingRenderer {
}
private static Map getSummary(Report report) {
- Map summary = new HashMap<>();
+ Map summary = new LinkedHashMap<>();
for (RuleViolation rv : report.getViolations()) {
String name = rv.getRule().getName();
MutableInt count = summary.get(name);
diff --git a/pmd-core/src/test/java/net/sourceforge/pmd/renderers/SummaryHTMLRendererTest.java b/pmd-core/src/test/java/net/sourceforge/pmd/renderers/SummaryHTMLRendererTest.java
index 6b7260f577..89a60d00ff 100644
--- a/pmd-core/src/test/java/net/sourceforge/pmd/renderers/SummaryHTMLRendererTest.java
+++ b/pmd-core/src/test/java/net/sourceforge/pmd/renderers/SummaryHTMLRendererTest.java
@@ -69,8 +69,8 @@ class SummaryHTMLRendererTest extends AbstractRendererTest {
return "PMD" + EOL + "Summary
" + EOL
+ "" + EOL
+ "| Rule name | Number of violations |
" + EOL
- + "| Boo | 1 |
" + EOL
- + "| Foo | 1 |
" + EOL + "
" + EOL
+ + "| Foo | 1 |
" + EOL
+ + "| Boo | 1 |
" + EOL + "" + EOL
+ "Detail
"
+ EOL
+ "PMD report
Problems found