<!DOCTYPE html SYSTEM "about:legacy-compat"> <html xmlns:scan="http://pmd.sourceforge.net/report/2.0.0"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>PMD Report </title> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous"> <link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/v/dt/jszip-2.5.0/dt-1.13.1/b-2.3.3/b-colvis-2.3.3/b-html5-2.3.3/b-print-2.3.3/datatables.min.css"><script src="https://code.jquery.com/jquery-3.6.3.min.js" integrity="sha256-pvPw+upLPUjgMXY0G+8O0xUf+/Im1MZjXxxgOcBQBXU=" crossorigin="anonymous"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.36/pdfmake.min.js"></script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.36/vfs_fonts.js"></script><script type="text/javascript" src="https://cdn.datatables.net/v/dt/jszip-2.5.0/dt-1.13.1/b-2.3.3/b-colvis-2.3.3/b-html5-2.3.3/b-print-2.3.3/datatables.min.js"></script><script src="https://cdn.jsdelivr.net/npm/vega@5.22.1/build/vega.min.js" integrity="sha256-cx8BtoEWvBhaGWMiCWyjQnN0JMSZXEimZ09X68ln6cE=" crossorigin="anonymous"></script><script src="https://cdn.jsdelivr.net/npm/vega-lite@5.6.0/build/vega-lite.min.js" integrity="sha256-6NKNS22U5kO0J2/tMld/SvW/eyY6wbOW6w+9mB2Z2p4=" crossorigin="anonymous"></script><script src="https://cdn.jsdelivr.net/npm/vega-embed@6.21.0/build/vega-embed.min.js" integrity="sha256-/XLqtIcBhAjhlmMOaz23UAXzBgQymz60D73+PfrK24w=" crossorigin="anonymous"></script></head> <body> <nav class="nav navbar navbar-expand-md navbar-dark bg-dark fixed-top"> <div class="container-fluid"><a class="navbar-brand" href="#">PMD Report</a><button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation"><span class="navbar-toggler-icon"></span></button></div> </nav> <div class="container" style="margin-top:100px;"> <h5>Problems found :: <small> Version: 6.53.0 @ 2023-01-24T10:02:08.431</small><span id="summary"></span></h5> <table id="pmdTable" class="table table-hover table-striped"> <thead> <tr> <th>File #</th> <th>Issue #</th> <th>File</th> <th>Line</th> <th>Priority</th> <th>Category</th> <th>Problem</th> </tr> </thead> <tr> <td>1</td> <td>1</td> <td>net/sourceforge/pmd/PMD.java</td> <td>154</td> <td>2</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#guardlogstatement">GuardLogStatement</a></td> </tr> <tr> <td>1</td> <td>2</td> <td>net/sourceforge/pmd/PMD.java</td> <td>249</td> <td>2</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#guardlogstatement">GuardLogStatement</a></td> </tr> <tr> <td>1</td> <td>3</td> <td>net/sourceforge/pmd/PMD.java</td> <td>459</td> <td>2</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#guardlogstatement">GuardLogStatement</a></td> </tr> <tr> <td>1</td> <td>4</td> <td>net/sourceforge/pmd/PMD.java</td> <td>460</td> <td>2</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#guardlogstatement">GuardLogStatement</a></td> </tr> <tr> <td>2</td> <td>1</td> <td>net/sourceforge/pmd/PmdAnalysis.java</td> <td>294</td> <td>2</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#guardlogstatement">GuardLogStatement</a></td> </tr> <tr> <td>3</td> <td>1</td> <td>net/sourceforge/pmd/RuleSet.java</td> <td>230</td> <td>2</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#guardlogstatement">GuardLogStatement</a></td> </tr> <tr> <td>3</td> <td>2</td> <td>net/sourceforge/pmd/RuleSet.java</td> <td>559</td> <td>2</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#guardlogstatement">GuardLogStatement</a></td> </tr> <tr> <td>4</td> <td>1</td> <td>net/sourceforge/pmd/RuleSetFactory.java</td> <td>436</td> <td>2</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#guardlogstatement">GuardLogStatement</a></td> </tr> <tr> <td>4</td> <td>2</td> <td>net/sourceforge/pmd/RuleSetFactory.java</td> <td>572</td> <td>2</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#guardlogstatement">GuardLogStatement</a></td> </tr> <tr> <td>4</td> <td>3</td> <td>net/sourceforge/pmd/RuleSetFactory.java</td> <td>593</td> <td>2</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#guardlogstatement">GuardLogStatement</a></td> </tr> <tr> <td>4</td> <td>4</td> <td>net/sourceforge/pmd/RuleSetFactory.java</td> <td>602</td> <td>2</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#guardlogstatement">GuardLogStatement</a></td> </tr> <tr> <td>4</td> <td>5</td> <td>net/sourceforge/pmd/RuleSetFactory.java</td> <td>605</td> <td>2</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#guardlogstatement">GuardLogStatement</a></td> </tr> <tr> <td>4</td> <td>6</td> <td>net/sourceforge/pmd/RuleSetFactory.java</td> <td>636</td> <td>2</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#guardlogstatement">GuardLogStatement</a></td> </tr> <tr> <td>4</td> <td>7</td> <td>net/sourceforge/pmd/RuleSetFactory.java</td> <td>746</td> <td>2</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#guardlogstatement">GuardLogStatement</a></td> </tr> <tr> <td>5</td> <td>1</td> <td>net/sourceforge/pmd/RuleSetLoader.java</td> <td>217</td> <td>2</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#guardlogstatement">GuardLogStatement</a></td> </tr> <tr> <td>6</td> <td>1</td> <td>net/sourceforge/pmd/RuleSetReferenceId.java</td> <td>199</td> <td>2</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#guardlogstatement">GuardLogStatement</a></td> </tr> <tr> <td>7</td> <td>1</td> <td>net/sourceforge/pmd/SourceCodeProcessor.java</td> <td>122</td> <td>2</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#guardlogstatement">GuardLogStatement</a></td> </tr> <tr> <td>8</td> <td>1</td> <td>net/sourceforge/pmd/ant/Formatter.java</td> <td>189</td> <td>3</td> <td>Error Prone</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_errorprone.html#closeresource">CloseResource</a></td> </tr> <tr> <td>9</td> <td>1</td> <td>net/sourceforge/pmd/benchmark/Benchmarker.java</td> <td>59</td> <td>3</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#forloopcanbeforeach">ForLoopCanBeForeach</a></td> </tr> <tr> <td>10</td> <td>1</td> <td>net/sourceforge/pmd/benchmark/StringBuilderCR.java</td> <td>17</td> <td>3</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#avoidstringbufferfield">AvoidStringBufferField</a></td> </tr> <tr> <td>11</td> <td>1</td> <td>net/sourceforge/pmd/cache/AbstractAnalysisCache.java</td> <td>84</td> <td>2</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#guardlogstatement">GuardLogStatement</a></td> </tr> <tr> <td>12</td> <td>1</td> <td>net/sourceforge/pmd/cache/FileAnalysisCache.java</td> <td>94</td> <td>2</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#guardlogstatement">GuardLogStatement</a></td> </tr> <tr> <td>12</td> <td>2</td> <td>net/sourceforge/pmd/cache/FileAnalysisCache.java</td> <td>96</td> <td>2</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#guardlogstatement">GuardLogStatement</a></td> </tr> <tr> <td>12</td> <td>3</td> <td>net/sourceforge/pmd/cache/FileAnalysisCache.java</td> <td>149</td> <td>2</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#guardlogstatement">GuardLogStatement</a></td> </tr> <tr> <td>13</td> <td>1</td> <td>net/sourceforge/pmd/cache/internal/RawFileFingerprinter.java</td> <td>43</td> <td>3</td> <td>Code Style</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_codestyle.html#emptycontrolstatement">EmptyControlStatement</a></td> </tr> <tr> <td>13</td> <td>2</td> <td>net/sourceforge/pmd/cache/internal/RawFileFingerprinter.java</td> <td>47</td> <td>2</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#guardlogstatement">GuardLogStatement</a></td> </tr> <tr> <td>14</td> <td>1</td> <td>net/sourceforge/pmd/cache/internal/ZipFileFingerprinter.java</td> <td>83</td> <td>2</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#guardlogstatement">GuardLogStatement</a></td> </tr> <tr> <td>15</td> <td>1</td> <td>net/sourceforge/pmd/cli/PMDCommandLineInterface.java</td> <td>120</td> <td>1</td> <td>Code Style</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_codestyle.html#localvariablenamingconventions">LocalVariableNamingConventions</a></td> </tr> <tr> <td>15</td> <td>2</td> <td>net/sourceforge/pmd/cli/PMDCommandLineInterface.java</td> <td>127</td> <td>1</td> <td>Code Style</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_codestyle.html#localvariablenamingconventions">LocalVariableNamingConventions</a></td> </tr> <tr> <td>16</td> <td>1</td> <td>net/sourceforge/pmd/cpd/AntlrTokenizer.java</td> <td>44</td> <td>3</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#preservestacktrace">PreserveStackTrace</a></td> </tr> <tr> <td>17</td> <td>1</td> <td>net/sourceforge/pmd/cpd/CPD.java</td> <td>63</td> <td>2</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#guardlogstatement">GuardLogStatement</a></td> </tr> <tr> <td>17</td> <td>2</td> <td>net/sourceforge/pmd/cpd/CPD.java</td> <td>66</td> <td>2</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#guardlogstatement">GuardLogStatement</a></td> </tr> <tr> <td>17</td> <td>3</td> <td>net/sourceforge/pmd/cpd/CPD.java</td> <td>91</td> <td>2</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#guardlogstatement">GuardLogStatement</a></td> </tr> <tr> <td>17</td> <td>4</td> <td>net/sourceforge/pmd/cpd/CPD.java</td> <td>130</td> <td>2</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#guardlogstatement">GuardLogStatement</a></td> </tr> <tr> <td>17</td> <td>5</td> <td>net/sourceforge/pmd/cpd/CPD.java</td> <td>157</td> <td>2</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#guardlogstatement">GuardLogStatement</a></td> </tr> <tr> <td>17</td> <td>6</td> <td>net/sourceforge/pmd/cpd/CPD.java</td> <td>251</td> <td>2</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#guardlogstatement">GuardLogStatement</a></td> </tr> <tr> <td>18</td> <td>1</td> <td>net/sourceforge/pmd/cpd/CPDCommandLineInterface.java</td> <td>101</td> <td>2</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#guardlogstatement">GuardLogStatement</a></td> </tr> <tr> <td>18</td> <td>2</td> <td>net/sourceforge/pmd/cpd/CPDCommandLineInterface.java</td> <td>102</td> <td>2</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#guardlogstatement">GuardLogStatement</a></td> </tr> <tr> <td>18</td> <td>3</td> <td>net/sourceforge/pmd/cpd/CPDCommandLineInterface.java</td> <td>200</td> <td>2</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#guardlogstatement">GuardLogStatement</a></td> </tr> <tr> <td>18</td> <td>4</td> <td>net/sourceforge/pmd/cpd/CPDCommandLineInterface.java</td> <td>202</td> <td>2</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#guardlogstatement">GuardLogStatement</a></td> </tr> <tr> <td>18</td> <td>5</td> <td>net/sourceforge/pmd/cpd/CPDCommandLineInterface.java</td> <td>203</td> <td>2</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#guardlogstatement">GuardLogStatement</a></td> </tr> <tr> <td>19</td> <td>1</td> <td>net/sourceforge/pmd/cpd/CPDTask.java</td> <td>100</td> <td>2</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#guardlogstatement">GuardLogStatement</a></td> </tr> <tr> <td>19</td> <td>2</td> <td>net/sourceforge/pmd/cpd/CPDTask.java</td> <td>104</td> <td>2</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#guardlogstatement">GuardLogStatement</a></td> </tr> <tr> <td>19</td> <td>3</td> <td>net/sourceforge/pmd/cpd/CPDTask.java</td> <td>164</td> <td>3</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#forloopcanbeforeach">ForLoopCanBeForeach</a></td> </tr> <tr> <td>20</td> <td>1</td> <td>net/sourceforge/pmd/cpd/GUI.java</td> <td>228</td> <td>3</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#forloopcanbeforeach">ForLoopCanBeForeach</a></td> </tr> <tr> <td>20</td> <td>2</td> <td>net/sourceforge/pmd/cpd/GUI.java</td> <td>285</td> <td>2</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#guardlogstatement">GuardLogStatement</a></td> </tr> <tr> <td>20</td> <td>3</td> <td>net/sourceforge/pmd/cpd/GUI.java</td> <td>288</td> <td>2</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#guardlogstatement">GuardLogStatement</a></td> </tr> <tr> <td>20</td> <td>4</td> <td>net/sourceforge/pmd/cpd/GUI.java</td> <td>451</td> <td>3</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#forloopcanbeforeach">ForLoopCanBeForeach</a></td> </tr> <tr> <td>20</td> <td>5</td> <td>net/sourceforge/pmd/cpd/GUI.java</td> <td>546</td> <td>3</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#forloopcanbeforeach">ForLoopCanBeForeach</a></td> </tr> <tr> <td>20</td> <td>6</td> <td>net/sourceforge/pmd/cpd/GUI.java</td> <td>631</td> <td>3</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#forloopcanbeforeach">ForLoopCanBeForeach</a></td> </tr> <tr> <td>20</td> <td>7</td> <td>net/sourceforge/pmd/cpd/GUI.java</td> <td>642</td> <td>3</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#forloopcanbeforeach">ForLoopCanBeForeach</a></td> </tr> <tr> <td>20</td> <td>8</td> <td>net/sourceforge/pmd/cpd/GUI.java</td> <td>715</td> <td>3</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#forloopcanbeforeach">ForLoopCanBeForeach</a></td> </tr> <tr> <td>21</td> <td>1</td> <td>net/sourceforge/pmd/cpd/SimpleRenderer.java</td> <td>41</td> <td>3</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#forloopcanbeforeach">ForLoopCanBeForeach</a></td> </tr> <tr> <td>22</td> <td>1</td> <td>net/sourceforge/pmd/cpd/SourceCode.java</td> <td>67</td> <td>3</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#preservestacktrace">PreserveStackTrace</a></td> </tr> <tr> <td>22</td> <td>2</td> <td>net/sourceforge/pmd/cpd/SourceCode.java</td> <td>98</td> <td>3</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#preservestacktrace">PreserveStackTrace</a></td> </tr> <tr> <td>23</td> <td>1</td> <td>net/sourceforge/pmd/cpd/VSRenderer.java</td> <td>33</td> <td>3</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#forloopcanbeforeach">ForLoopCanBeForeach</a></td> </tr> <tr> <td>24</td> <td>1</td> <td>net/sourceforge/pmd/cpd/XMLRenderer.java</td> <td>139</td> <td>3</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#forloopcanbeforeach">ForLoopCanBeForeach</a></td> </tr> <tr> <td>25</td> <td>1</td> <td>net/sourceforge/pmd/cpd/internal/JavaCCTokenizer.java</td> <td>44</td> <td>3</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#preservestacktrace">PreserveStackTrace</a></td> </tr> <tr> <td>26</td> <td>1</td> <td>net/sourceforge/pmd/dcd/ClassLoaderUtil.java</td> <td>67</td> <td>3</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#preservestacktrace">PreserveStackTrace</a></td> </tr> <tr> <td>26</td> <td>2</td> <td>net/sourceforge/pmd/dcd/ClassLoaderUtil.java</td> <td>115</td> <td>3</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#preservestacktrace">PreserveStackTrace</a></td> </tr> <tr> <td>27</td> <td>1</td> <td>net/sourceforge/pmd/dcd/UsageNodeVisitor.java</td> <td>196</td> <td>4</td> <td>Code Style</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_codestyle.html#unnecessaryfullyqualifiedname">UnnecessaryFullyQualifiedName</a></td> </tr> <tr> <td>27</td> <td>2</td> <td>net/sourceforge/pmd/dcd/UsageNodeVisitor.java</td> <td>210</td> <td>4</td> <td>Code Style</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_codestyle.html#unnecessaryfullyqualifiedname">UnnecessaryFullyQualifiedName</a></td> </tr> <tr> <td>28</td> <td>1</td> <td>net/sourceforge/pmd/document/DocumentFile.java</td> <td>83</td> <td>2</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#guardlogstatement">GuardLogStatement</a></td> </tr> <tr> <td>28</td> <td>2</td> <td>net/sourceforge/pmd/document/DocumentFile.java</td> <td>117</td> <td>2</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#guardlogstatement">GuardLogStatement</a></td> </tr> <tr> <td>28</td> <td>3</td> <td>net/sourceforge/pmd/document/DocumentFile.java</td> <td>140</td> <td>2</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#guardlogstatement">GuardLogStatement</a></td> </tr> <tr> <td>29</td> <td>1</td> <td>net/sourceforge/pmd/lang/ast/AbstractNode.java</td> <td>442</td> <td>3</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#forloopcanbeforeach">ForLoopCanBeForeach</a></td> </tr> <tr> <td>29</td> <td>2</td> <td>net/sourceforge/pmd/lang/ast/AbstractNode.java</td> <td>446</td> <td>3</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#forloopcanbeforeach">ForLoopCanBeForeach</a></td> </tr> <tr> <td>29</td> <td>3</td> <td>net/sourceforge/pmd/lang/ast/AbstractNode.java</td> <td>675</td> <td>2</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#guardlogstatement">GuardLogStatement</a></td> </tr> <tr> <td>30</td> <td>1</td> <td>net/sourceforge/pmd/lang/ast/TokenMgrError.java</td> <td>102</td> <td>1</td> <td>Code Style</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_codestyle.html#methodnamingconventions">MethodNamingConventions</a></td> </tr> <tr> <td>31</td> <td>1</td> <td>net/sourceforge/pmd/lang/dfa/SequenceChecker.java</td> <td>202</td> <td>2</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#guardlogstatement">GuardLogStatement</a></td> </tr> <tr> <td>32</td> <td>1</td> <td>net/sourceforge/pmd/lang/dfa/report/AbstractReportNode.java</td> <td>95</td> <td>3</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#forloopcanbeforeach">ForLoopCanBeForeach</a></td> </tr> <tr> <td>33</td> <td>1</td> <td>net/sourceforge/pmd/lang/dfa/report/ReportHTMLPrintVisitor.java</td> <td>125</td> <td>3</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#preservestacktrace">PreserveStackTrace</a></td> </tr> <tr> <td>33</td> <td>2</td> <td>net/sourceforge/pmd/lang/dfa/report/ReportHTMLPrintVisitor.java</td> <td>169</td> <td>3</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#preservestacktrace">PreserveStackTrace</a></td> </tr> <tr> <td>34</td> <td>1</td> <td>net/sourceforge/pmd/lang/document/FileCollector.java</td> <td>199</td> <td>2</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#guardlogstatement">GuardLogStatement</a></td> </tr> <tr> <td>34</td> <td>2</td> <td>net/sourceforge/pmd/lang/document/FileCollector.java</td> <td>230</td> <td>2</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#guardlogstatement">GuardLogStatement</a></td> </tr> <tr> <td>34</td> <td>3</td> <td>net/sourceforge/pmd/lang/document/FileCollector.java</td> <td>368</td> <td>2</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#guardlogstatement">GuardLogStatement</a></td> </tr> <tr> <td>34</td> <td>4</td> <td>net/sourceforge/pmd/lang/document/FileCollector.java</td> <td>383</td> <td>2</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#guardlogstatement">GuardLogStatement</a></td> </tr> <tr> <td>35</td> <td>1</td> <td>net/sourceforge/pmd/lang/rule/AbstractRuleChainVisitor.java</td> <td>93</td> <td>3</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#forloopcanbeforeach">ForLoopCanBeForeach</a></td> </tr> <tr> <td>36</td> <td>1</td> <td>net/sourceforge/pmd/lang/symboltable/Applier.java</td> <td>18</td> <td>3</td> <td>Code Style</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_codestyle.html#emptycontrolstatement">EmptyControlStatement</a></td> </tr> <tr> <td>37</td> <td>1</td> <td>net/sourceforge/pmd/lang/xpath/PMDFunctions.java</td> <td>95</td> <td>2</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#guardlogstatement">GuardLogStatement</a></td> </tr> <tr> <td>38</td> <td>1</td> <td>net/sourceforge/pmd/processor/MultiThreadProcessor.java</td> <td>61</td> <td>3</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#preservestacktrace">PreserveStackTrace</a></td> </tr> <tr> <td>39</td> <td>1</td> <td>net/sourceforge/pmd/properties/BooleanMultiProperty.java</td> <td>78</td> <td>4</td> <td>Code Style</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_codestyle.html#unnecessaryfullyqualifiedname">UnnecessaryFullyQualifiedName</a></td> </tr> <tr> <td>40</td> <td>1</td> <td>net/sourceforge/pmd/properties/BooleanProperty.java</td> <td>75</td> <td>4</td> <td>Code Style</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_codestyle.html#unnecessaryfullyqualifiedname">UnnecessaryFullyQualifiedName</a></td> </tr> <tr> <td>41</td> <td>1</td> <td>net/sourceforge/pmd/properties/CharacterMultiProperty.java</td> <td>97</td> <td>3</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#forloopcanbeforeach">ForLoopCanBeForeach</a></td> </tr> <tr> <td>42</td> <td>1</td> <td>net/sourceforge/pmd/properties/CharacterProperty.java</td> <td>88</td> <td>4</td> <td>Code Style</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_codestyle.html#unnecessaryfullyqualifiedname">UnnecessaryFullyQualifiedName</a></td> </tr> <tr> <td>43</td> <td>1</td> <td>net/sourceforge/pmd/properties/DoubleProperty.java</td> <td>99</td> <td>4</td> <td>Code Style</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_codestyle.html#unnecessaryfullyqualifiedname">UnnecessaryFullyQualifiedName</a></td> </tr> <tr> <td>44</td> <td>1</td> <td>net/sourceforge/pmd/properties/FloatProperty.java</td> <td>86</td> <td>4</td> <td>Code Style</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_codestyle.html#unnecessaryfullyqualifiedname">UnnecessaryFullyQualifiedName</a></td> </tr> <tr> <td>45</td> <td>1</td> <td>net/sourceforge/pmd/properties/IntegerProperty.java</td> <td>66</td> <td>4</td> <td>Code Style</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_codestyle.html#unnecessaryfullyqualifiedname">UnnecessaryFullyQualifiedName</a></td> </tr> <tr> <td>46</td> <td>1</td> <td>net/sourceforge/pmd/properties/MethodMultiProperty.java</td> <td>123</td> <td>4</td> <td>Code Style</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_codestyle.html#unnecessaryfullyqualifiedname">UnnecessaryFullyQualifiedName</a></td> </tr> <tr> <td>47</td> <td>1</td> <td>net/sourceforge/pmd/properties/MethodProperty.java</td> <td>93</td> <td>4</td> <td>Code Style</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_codestyle.html#unnecessaryfullyqualifiedname">UnnecessaryFullyQualifiedName</a></td> </tr> <tr> <td>48</td> <td>1</td> <td>net/sourceforge/pmd/properties/ValueParserConstants.java</td> <td>233</td> <td>3</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#preservestacktrace">PreserveStackTrace</a></td> </tr> <tr> <td>49</td> <td>1</td> <td>net/sourceforge/pmd/properties/modules/PackagedPropertyModule.java</td> <td>131</td> <td>3</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#forloopcanbeforeach">ForLoopCanBeForeach</a></td> </tr> <tr> <td>50</td> <td>1</td> <td>net/sourceforge/pmd/renderers/AbstractIncrementingRenderer.java</td> <td>66</td> <td>3</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#forloopcanbeforeach">ForLoopCanBeForeach</a></td> </tr> <tr> <td>50</td> <td>2</td> <td>net/sourceforge/pmd/renderers/AbstractIncrementingRenderer.java</td> <td>70</td> <td>3</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#forloopcanbeforeach">ForLoopCanBeForeach</a></td> </tr> <tr> <td>51</td> <td>1</td> <td>net/sourceforge/pmd/renderers/CodeClimateRenderer.java</td> <td>47</td> <td>1</td> <td>Code Style</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_codestyle.html#localvariablenamingconventions">LocalVariableNamingConventions</a></td> </tr> <tr> <td>52</td> <td>1</td> <td>net/sourceforge/pmd/renderers/RendererFactory.java</td> <td>118</td> <td>3</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#preservestacktrace">PreserveStackTrace</a></td> </tr> <tr> <td>53</td> <td>1</td> <td>net/sourceforge/pmd/util/ClassUtil.java</td> <td>154</td> <td>3</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#forloopcanbeforeach">ForLoopCanBeForeach</a></td> </tr> <tr> <td>54</td> <td>1</td> <td>net/sourceforge/pmd/util/FileUtil.java</td> <td>123</td> <td>3</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#preservestacktrace">PreserveStackTrace</a></td> </tr> <tr> <td>55</td> <td>1</td> <td>net/sourceforge/pmd/util/StringUtil.java</td> <td>591</td> <td>3</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#forloopcanbeforeach">ForLoopCanBeForeach</a></td> </tr> <tr> <td>55</td> <td>2</td> <td>net/sourceforge/pmd/util/StringUtil.java</td> <td>619</td> <td>3</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#forloopcanbeforeach">ForLoopCanBeForeach</a></td> </tr> <tr> <td>56</td> <td>1</td> <td>net/sourceforge/pmd/util/database/DBMSMetadata.java</td> <td>418</td> <td>2</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#guardlogstatement">GuardLogStatement</a></td> </tr> <tr> <td>56</td> <td>2</td> <td>net/sourceforge/pmd/util/database/DBMSMetadata.java</td> <td>488</td> <td>2</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#guardlogstatement">GuardLogStatement</a></td> </tr> <tr> <td>56</td> <td>3</td> <td>net/sourceforge/pmd/util/database/DBMSMetadata.java</td> <td>508</td> <td>2</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#guardlogstatement">GuardLogStatement</a></td> </tr> <tr> <td>56</td> <td>4</td> <td>net/sourceforge/pmd/util/database/DBMSMetadata.java</td> <td>538</td> <td>2</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#guardlogstatement">GuardLogStatement</a></td> </tr> <tr> <td>57</td> <td>1</td> <td>net/sourceforge/pmd/util/database/DBType.java</td> <td>207</td> <td>3</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#preservestacktrace">PreserveStackTrace</a></td> </tr> <tr> <td>57</td> <td>2</td> <td>net/sourceforge/pmd/util/database/DBType.java</td> <td>207</td> <td>3</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#preservestacktrace">PreserveStackTrace</a></td> </tr> <tr> <td>57</td> <td>3</td> <td>net/sourceforge/pmd/util/database/DBType.java</td> <td>207</td> <td>3</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#preservestacktrace">PreserveStackTrace</a></td> </tr> <tr> <td>58</td> <td>1</td> <td>net/sourceforge/pmd/util/database/DBURI.java</td> <td>319</td> <td>2</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#guardlogstatement">GuardLogStatement</a></td> </tr> <tr> <td>58</td> <td>2</td> <td>net/sourceforge/pmd/util/database/DBURI.java</td> <td>447</td> <td>2</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#guardlogstatement">GuardLogStatement</a></td> </tr> <tr> <td>58</td> <td>3</td> <td>net/sourceforge/pmd/util/database/DBURI.java</td> <td>480</td> <td>2</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#guardlogstatement">GuardLogStatement</a></td> </tr> <tr> <td>59</td> <td>1</td> <td>net/sourceforge/pmd/util/designer/Designer.java</td> <td>654</td> <td>3</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#forloopcanbeforeach">ForLoopCanBeForeach</a></td> </tr> <tr> <td>60</td> <td>1</td> <td>net/sourceforge/pmd/util/log/AntLogHandler.java</td> <td>114</td> <td>2</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#guardlogstatement">GuardLogStatement</a></td> </tr> <tr> <td>60</td> <td>2</td> <td>net/sourceforge/pmd/util/log/AntLogHandler.java</td> <td>119</td> <td>2</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#guardlogstatement">GuardLogStatement</a></td> </tr> <tr> <td>61</td> <td>1</td> <td>net/sourceforge/pmd/util/log/internal/MessageReporterScope.java</td> <td>29</td> <td>2</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#guardlogstatement">GuardLogStatement</a></td> </tr> <tr> <td>62</td> <td>1</td> <td>net/sourceforge/pmd/util/log/internal/SimpleMessageReporter.java</td> <td>34</td> <td>2</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#guardlogstatement">GuardLogStatement</a></td> </tr> <tr> <td>63</td> <td>1</td> <td>net/sourceforge/pmd/util/treeexport/TreeExportCli.java</td> <td>230</td> <td>3</td> <td>Design</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_design.html#donotextendjavalangerror">DoNotExtendJavaLangError</a></td> </tr> <tr> <td>64</td> <td>1</td> <td>net/sourceforge/pmd/util/viewer/gui/SourceCodePanel.java</td> <td>81</td> <td>3</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#preservestacktrace">PreserveStackTrace</a></td> </tr> <tr> <td>65</td> <td>1</td> <td>net/sourceforge/pmd/util/viewer/model/ViewerModel.java</td> <td>137</td> <td>3</td> <td>Best Practices</td> <td><a href="https://pmd.github.io/pmd-6.53.0/pmd_rules_java_bestpractices.html#forloopcanbeforeach">ForLoopCanBeForeach</a></td> </tr> </table> <div id="vizBar"></div> <div id="vizArc"></div> <div id="vizArcRS"></div> </div><script> $(document).ready( function () { let priorityCounter = { '1': 0, '2': 0, '3': 0, '4': 0, '5': 0 }; let categoryCounter = { 'Best Practices': 0, 'Code Style': 0, 'Design': 0, 'Documentation': 0, 'Error Prone': 0, 'Multithreading': 0, 'Performance': 0, 'Security': 0, 'Other': 0 }; function mapCategory(rulesetName) { switch (rulesetName.toLowerCase()) { case 'best practices': return 'Best Practices'; case 'code style': return 'Code Style'; case 'design': return 'Design'; case 'documentation': return 'Documentation'; case 'error prone': return 'Error Prone'; case 'multithreading': return 'Multithreading'; case 'performance': return 'Performance'; case 'security': return 'Security'; } return 'Other'; } let rows = $('#pmdTable tbody tr'); let total = rows.length; rows.each(function() { let priority = $("td", this).slice(4, 5).text(); priorityCounter[priority]++; let rulesetName = $("td", this).slice(5, 6).text(); categoryCounter[mapCategory(rulesetName)]++; }); const summaryEle = document.getElementById('summary'); summaryEle.innerHTML = ` <table class="table table-bordered table-hover table-striped"><tr><th>Total</th><th>P1</th><th>P2</th><th>P3</th><th>P4</th><th>P5</th></tr><tr><td><strong>${total}</strong></td><td>${priorityCounter['1']}</td><td>${priorityCounter['2']}</td><td>${priorityCounter['3']}</td><td>${priorityCounter['4']}</td><td>${priorityCounter['5']}</td></tr></table>`; $('#pmdTable').DataTable({ dom: 'Blfrtip', buttons: [ 'copy', 'csv', 'excel', 'pdf', 'print'] }); // charting const arcSpec ={ "$schema": "https://vega.github.io/schema/vega-lite/v5.json", "description": "PMD violations", "data": { "values": [ {"priority": 1, "count": priorityCounter['1']}, {"priority": 2, "count": priorityCounter['2']}, {"priority": 3, "count": priorityCounter['3']}, {"priority": 4, "count": priorityCounter['4']}, {"priority": 5, "count": priorityCounter['5']} ] }, "mark": {"type": "arc" , "innerRadius": 50, "tooltip": true}, "encoding": { "theta": {"field": "count", "type": "quantitative"}, "color": {"field": "priority", "type": "nominal"} }, } vegaEmbed('#vizArc', arcSpec); const arcSpecRS ={ "$schema": "https://vega.github.io/schema/vega-lite/v5.json", "description": "PMD violations", "data": { "values": [ {"category": "Best Practices", "count": categoryCounter['Best Practices']}, {"category": "Code Style", "count": categoryCounter['Code Style']}, {"category": "Design", "count": categoryCounter['Design']}, {"category": "Documentation", "count": categoryCounter['Documentation']}, {"category": "Error Prone", "count": categoryCounter['Error Prone']}, {"category": "Multithreading", "count": categoryCounter['Multithreading']}, {"category": "Performance", "count": categoryCounter['Performance']}, {"category": "Security", "count": categoryCounter['Security']}, {"category": "Other", "count": categoryCounter['Other']} ] }, "mark": {"type": "arc" , "innerRadius": 50, "tooltip": true}, "encoding": { "theta": {"field": "count", "type": "quantitative"}, "color": {"field": "category", "type": "nominal"} }, } vegaEmbed('#vizArcRS', arcSpecRS); const barSpec = { "$schema": "https://vega.github.io/schema/vega-lite/v5.json", "description": "PMD violations", "data": { "values": [ {"priority": 1, "count": priorityCounter['1']}, {"priority": 2, "count": priorityCounter['2']}, {"priority": 3, "count": priorityCounter['3']}, {"priority": 4, "count": priorityCounter['4']}, {"priority": 5, "count": priorityCounter['5']} ] }, "mark": { type: "bar","tooltip": true}, "encoding": { "x": {"field": "priority", "type": "nominal", "axis": {"labelAngle": 0}}, "y": {"field": "count", "type": "quantitative"} } } vegaEmbed('#vizBar', barSpec); } ); </script></body> </html>