<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia Site Renderer 1.11.1 from com.github.spotbugs:spotbugs-maven-plugin:4.8.5.0:spotbugs at 2024-05-27

 | Rendered using Apache Maven Default Skin
-->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta name="generator" content="Apache Maven Doxia Site Renderer 1.11.1" />
    <title>Apache Rat™ Task Library for Apache Ant &#x2013; SpotBugs Bug Detector Report</title>
    <link rel="stylesheet" href="./css/maven-base.css" />
    <link rel="stylesheet" href="./css/maven-theme.css" />
    <link rel="stylesheet" href="./css/site.css" />
    <link rel="stylesheet" href="./css/print.css" media="print" />
<link href="https://creadur.apache.org/font/matesc.css" type="text/css" rel="stylesheet" />
  </head>
  <body class="composite">
    <div id="banner">
<a href="https://www.apache.org/" id="bannerLeft"><img src="https://www.apache.org/img/asf_logo.png"  alt="The Apache Software Foundation" title="The Apache Software Foundation"/></a>      <div class="clear">
        <hr/>
      </div>
    </div>
    <div id="breadcrumbs">
      <div class="xleft">
        <span id="publishDate">Last Published: 2024-05-27</span>
           | <span id="projectVersion">Version: 0.17-SNAPSHOT</span>
          | <a href="https://www.apache.org/" class="externalLink" title="Apache">Apache</a> &gt;
<a href="https://creadur.apache.org/" class="externalLink" title="Creadur">Creadur</a> &gt;
<a href="https://creadur.apache.org/rat/" class="externalLink" title="Rat">Rat</a> &gt;
<a href="index.html" title="Apache Rat™ Task Library for Apache Ant">Apache Rat™ Task Library for Apache Ant</a> &gt;
SpotBugs Bug Detector Report
      </div>
      <div class="xright">      </div>
      <div class="clear">
        <hr/>
      </div>
    </div>
    <div id="leftColumn">
      <div id="navcolumn">
       <h5>Parent Project</h5>
    <ul>
     <li class="none"><a href="../index.html" title="Apache Creadur Rat">Apache Creadur Rat</a></li>
    </ul>
       <h5>Overview</h5>
    <ul>
     <li class="none"><a href="index.html" title="Introduction">Introduction</a></li>
     <li class="none"><a href="report.html" title="Report Task">Report Task</a></li>
     <li class="none"><a href="types.html" title="Types">Types</a></li>
    </ul>
       <h5>Examples</h5>
    <ul>
     <li class="none"><a href="examples/basic.html" title="Basic Usage">Basic Usage</a></li>
     <li class="none"><a href="examples/custom.html" title="Custom Types">Custom Types</a></li>
    </ul>
       <h5>Project Documentation</h5>
    <ul>
     <li class="collapsed"><a href="project-info.html" title="Project Information">Project Information</a></li>
     <li class="expanded"><a href="project-reports.html" title="Project Reports">Project Reports</a>
      <ul>
       <li class="none"><a href="jira-report.html" title="JIRA Report">JIRA Report</a></li>
       <li class="none"><a href="checkstyle.html" title="Checkstyle">Checkstyle</a></li>
       <li class="none"><a href="apidocs/index.html" title="Javadoc">Javadoc</a></li>
       <li class="none"><a href="xref/index.html" title="Source Xref">Source Xref</a></li>
       <li class="none"><a href="xref-test/index.html" title="Test Source Xref">Test Source Xref</a></li>
       <li class="none"><a href="pmd.html" title="PMD">PMD</a></li>
       <li class="none"><a href="rat-report.html" title="Rat Report">Rat Report</a></li>
       <li class="none"><strong>SpotBugs</strong></li>
      </ul></li>
    </ul>
       <h5>Apache Rat™</h5>
    <ul>
     <li class="none"><a href="../index.html" title="Introducing Rat">Introducing Rat</a></li>
     <li class="none"><a href="../apidocs/index.html" title="Javadocs">Javadocs</a></li>
     <li class="none"><a href="../download_rat.cgi" title="Downloads">Downloads</a></li>
     <li class="none"><a href="../RELEASE_NOTES.txt" title="Changes">Changes</a></li>
    </ul>
       <h5>Running Rat</h5>
    <ul>
     <li class="none"><a href="../apache-rat/index.html" title="From The Command Line">From The Command Line</a></li>
     <li class="none"><a href="../apache-rat-tasks/index.html" title="With Ant">With Ant</a></li>
     <li class="none"><a href="../apache-rat-plugin/index.html" title="With Maven">With Maven</a></li>
    </ul>
       <h5>Apache Creadur™</h5>
    <ul>
     <li class="none"><a href="https://creadur.apache.org" class="externalLink" title="Creadur Project Home">Creadur Project Home</a></li>
     <li class="none"><a href="https://creadur.apache.org/tentacles" class="externalLink" title="Apache Tentacles">Apache Tentacles</a></li>
     <li class="none"><a href="https://creadur.apache.org/whisker" class="externalLink" title="Apache Whisker">Apache Whisker</a></li>
     <li class="none"><a href="https://www.apache.org/security/" class="externalLink" title="Security">Security</a></li>
     <li class="none"><a href="https://www.apache.org/licenses/" class="externalLink" title="License">License</a></li>
     <li class="none"><a href="https://privacy.apache.org/policies/privacy-policy-public.html" class="externalLink" title="Privacy">Privacy</a></li>
     <li class="none"><a href="https://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsorship">Sponsorship</a></li>
     <li class="none"><a href="https://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks">Thanks</a></li>
    </ul>
       <h5>The Apache Software Foundation</h5>
    <ul>
     <li class="none"><a href="https://www.apache.org/foundation" class="externalLink" title="About the Foundation">About the Foundation</a></li>
     <li class="none"><a href="https://projects.apache.org" class="externalLink" title="The projects">The projects</a></li>
     <li class="none"><a href="https://people.apache.org" class="externalLink" title="The people">The people</a></li>
     <li class="none"><a href="https://www.apache.org/foundation/how-it-works.html" class="externalLink" title="How we work">How we work</a></li>
     <li class="none"><a href="https://www.apache.org/foundation/how-it-works.html#history" class="externalLink" title="Our history">Our history</a></li>
     <li class="none"><a href="https://blogs.apache.org/foundation/" class="externalLink" title="News">News</a></li>
    </ul>
       <h5>Contribute</h5>
    <ul>
     <li class="none"><a href="https://www.apache.org/foundation/getinvolved.html" class="externalLink" title="Get Involved">Get Involved</a></li>
    </ul>
       <h5>Committer Info</h5>
    <ul>
     <li class="none"><a href="https://www.apache.org/dev/committers.html" class="externalLink" title="ASF Committers' FAQ">ASF Committers' FAQ</a></li>
     <li class="none"><a href="https://www.apache.org/dev/new-committers-guide.html" class="externalLink" title="New Committers Guide">New Committers Guide</a></li>
     <li class="none"><a href="../site-publish.html" title="Howto publish this site">Howto publish this site</a></li>
     <li class="none"><a href="https://community.apache.org/" class="externalLink" title="Community">Community</a></li>
     <li class="none"><a href="https://www.apache.org/legal/" class="externalLink" title="Legal">Legal</a></li>
     <li class="none"><a href="https://www.apache.org/foundation/marks/" class="externalLink" title="Branding">Branding</a></li>
     <li class="none"><a href="https://www.apache.org/press/" class="externalLink" title="Media Relations">Media Relations</a></li>
    </ul>
      <a href="https://maven.apache.org/" title="Maven" class="poweredBy">
        <img class="poweredBy"  alt="Maven" src="https://maven.apache.org/images/logos/maven-feather.png"     />
      </a>
      </div>
    </div>
    <div id="bodyColumn">
      <div id="contentBox">
<section>
<h2><a name="SpotBugs_Bug_Detector_Report"></a>SpotBugs Bug Detector Report</h2>
<p>The following document contains the results of <a class="externalLink" href="https://spotbugs.github.io/">SpotBugs</a></p>
<p>SpotBugs Version is <i>4.8.5</i></p>
<p>Threshold is <i>medium</i></p>
<p>Effort is <i>default</i></p></section><section>
<h2><a name="Summary"></a>Summary</h2>
<table border="0" class="bodyTable">
<tr class="a">
<th>Classes</th>
<th>Bugs</th>
<th>Errors</th>
<th>Missing Classes</th></tr>
<tr class="b">
<td>17</td>
<td>4</td>
<td>0</td>
<td>3</td></tr></table></section><section>
<h2><a name="Files"></a>Files</h2>
<table border="0" class="bodyTable">
<tr class="a">
<th>Class</th>
<th>Bugs</th></tr>
<tr class="b">
<td><a href="#org.apache.rat.anttasks.Report">org.apache.rat.anttasks.Report</a></td>
<td>1</td></tr>
<tr class="a">
<td><a href="#org.apache.rat.anttasks.Report$AddLicenseHeaders">org.apache.rat.anttasks.Report$AddLicenseHeaders</a></td>
<td>1</td></tr>
<tr class="b">
<td><a href="#org.apache.rat.anttasks.Report$ApprovalFilter">org.apache.rat.anttasks.Report$ApprovalFilter</a></td>
<td>1</td></tr>
<tr class="a">
<td><a href="#org.apache.rat.anttasks.Report$Logger">org.apache.rat.anttasks.Report$Logger</a></td>
<td>1</td></tr></table></section><a name="org.apache.rat.anttasks.Report"></a><section>
<h3><a name="org.apache.rat.anttasks.Report"></a>org.apache.rat.anttasks.Report</h3>
<table border="0" class="bodyTable">
<tr class="a">
<th>Bug</th>
<th>Category</th>
<th>Details</th>
<th>Line</th>
<th>Priority</th></tr>
<tr class="b">
<td>org.apache.rat.anttasks.Report.getConfiguration() may expose internal representation by returning Report.configuration</td>
<td>MALICIOUS_CODE</td>
<td><a class="externalLink" href="https://spotbugs.readthedocs.io/en/latest/bugDescriptions.html#EI_EXPOSE_REP">EI_EXPOSE_REP</a></td>
<td><a href="./xref/org/apache/rat/anttasks/Report.html#L216">216</a></td>
<td>Medium</td></tr></table></section><a name="org.apache.rat.anttasks.Report$AddLicenseHeaders"></a><section>
<h3><a name="org.apache.rat.anttasks.Report.24AddLicenseHeaders"></a>org.apache.rat.anttasks.Report$AddLicenseHeaders</h3>
<table border="0" class="bodyTable">
<tr class="a">
<th>Bug</th>
<th>Category</th>
<th>Details</th>
<th>Line</th>
<th>Priority</th></tr>
<tr class="b">
<td>Exception thrown in class org.apache.rat.anttasks.Report$AddLicenseHeaders at new org.apache.rat.anttasks.Report$AddLicenseHeaders(String) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.</td>
<td>BAD_PRACTICE</td>
<td><a class="externalLink" href="https://spotbugs.readthedocs.io/en/latest/bugDescriptions.html#CT_CONSTRUCTOR_THROW">CT_CONSTRUCTOR_THROW</a></td>
<td><a href="./xref/org/apache/rat/anttasks/Report.html#L265">265</a></td>
<td>Medium</td></tr></table></section><a name="org.apache.rat.anttasks.Report$ApprovalFilter"></a><section>
<h3><a name="org.apache.rat.anttasks.Report.24ApprovalFilter"></a>org.apache.rat.anttasks.Report$ApprovalFilter</h3>
<table border="0" class="bodyTable">
<tr class="a">
<th>Bug</th>
<th>Category</th>
<th>Details</th>
<th>Line</th>
<th>Priority</th></tr>
<tr class="b">
<td>Exception thrown in class org.apache.rat.anttasks.Report$ApprovalFilter at new org.apache.rat.anttasks.Report$ApprovalFilter(String) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks.</td>
<td>BAD_PRACTICE</td>
<td><a class="externalLink" href="https://spotbugs.readthedocs.io/en/latest/bugDescriptions.html#CT_CONSTRUCTOR_THROW">CT_CONSTRUCTOR_THROW</a></td>
<td><a href="./xref/org/apache/rat/anttasks/Report.html#L287">287</a></td>
<td>Medium</td></tr></table></section><a name="org.apache.rat.anttasks.Report$Logger"></a><section>
<h3><a name="org.apache.rat.anttasks.Report.24Logger"></a>org.apache.rat.anttasks.Report$Logger</h3>
<table border="0" class="bodyTable">
<tr class="a">
<th>Bug</th>
<th>Category</th>
<th>Details</th>
<th>Line</th>
<th>Priority</th></tr>
<tr class="b">
<td>Found reliance on default encoding in org.apache.rat.anttasks.Report$Logger.write(int, String): new java.io.PrintWriter(OutputStream)</td>
<td>I18N</td>
<td><a class="externalLink" href="https://spotbugs.readthedocs.io/en/latest/bugDescriptions.html#DM_DEFAULT_ENCODING">DM_DEFAULT_ENCODING</a></td>
<td><a href="./xref/org/apache/rat/anttasks/Report.html#L304">304</a></td>
<td>High</td></tr></table></section>
      </div>
    </div>
    <div class="clear">
      <hr/>
    </div>
    <div id="footer">
      <div class="xright">
        Copyright &copy; 2016-2024 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.
      Apache Creadur, Creadur, Apache Rat, Apache Tentacles, Apache Whisker, Apache and the Apache feather logo are trademarks
      of The Apache Software Foundation.
      Oracle and Java are registered trademarks of Oracle and/or its affiliates.
      All other marks mentioned may be trademarks or registered trademarks of their respective owners.
      </div>
      <div class="clear">
        <hr/>
      </div>
    </div>
  </body>
</html>
