<!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>