This is an automated email from the ASF dual-hosted git repository.

markt pushed a commit to branch 7.0.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git

commit 8d9d469977d937042068785833e13546cbab6ba7
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Thu Oct 22 20:54:14 2020 +0100

    Fix remaining false positives
---
 res/findbugs/filter-false-positives.xml | 104 ++++++++++++++++++++++++++++++++
 1 file changed, 104 insertions(+)

diff --git a/res/findbugs/filter-false-positives.xml 
b/res/findbugs/filter-false-positives.xml
index 21ed1b0..b25df40 100644
--- a/res/findbugs/filter-false-positives.xml
+++ b/res/findbugs/filter-false-positives.xml
@@ -137,6 +137,12 @@
     <Bug code="RCN"/>
   </Match>
   <Match>
+    <!-- Calling sleep while holding a lock is deliberate -->
+    <Class name="org.apache.catalina.core.StandardContext" />
+    <Method name="stopInternal" />
+    <Bug pattern="SWL_SLEEP_WITH_LOCK_HELD" />
+  </Match>
+  <Match>
     <!-- Have to trigger GC for leak detection to work. Clearly documented -->
     <Class name="org.apache.catalina.core.StandardHost" />
     <Method name="findReloadedContextMemoryLeaks" />
@@ -192,6 +198,17 @@
     <Bug code="DE" />
   </Match>
   <Match>
+    <!-- Design choice to reduce need for syncs -->
+    <Class name="org.apache.catalina.ha.tcp.ReplicationValve" />
+    <Or>
+      <Field name="nrOfCrossContextSendRequests" />
+      <Field name="nrOfFilterRequests" />
+      <Field name="nrOfRequests" />
+      <Field name="nrOfSendRequests" />
+    </Or>
+    <Pattern code="VO_VOLATILE_INCREMENT" />
+  </Match>
+  <Match>
     <!-- Field is only modified during Servlet load -->
     <Class name="org.apache.catalina.manager.host.HostManagerServlet" />
     <Bug code="MSF" />
@@ -342,6 +359,12 @@
     <Bug code="NS"/>
   </Match>
   <Match>
+    <!-- lock is in clone so this is safe -->
+    <Class name="org.apache.catalina.tribes.membership.Membership" />
+    <Method name="clone" />
+    <Bug pattern="ML_SYNC_ON_FIELD_TO_GUARD_CHANGING_THAT_FIELD" />
+  </Match>
+  <Match>
     <!-- Intentional in case thread is waiting -->
     <Class name="org.apache.catalina.tribes.transport.RxTaskPool"/>
     <Method name="returnWorker"/>
@@ -501,11 +524,37 @@
     <Bug code="Nm" />
   </Match>
   <Match>
+    <!-- Utility classes used to import/export l10n strings -->
+    <!-- This code does not need to be robust -->
+    <Class name="org.apache.tomcat.buildutil.translate.Import"/>
+  </Match>
+  <Match>
     <!-- Class has to implement clone since its superclass does but fakes it 
-->
     <Class name="org.apache.naming.resources.ResourceAttributes" />
     <Bug code="CN" />
   </Match>
   <Match>
+    <!-- instanceof is appropriate here -->
+    <Or>
+      <Class name="org.apache.tomcat.dbcp.dbcp.DelegatingCallableStatement"/>
+      <Class name="org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement"/>
+    </Or>
+    <Method name="equals"/>
+    <Bug pattern="EQ_OVERRIDING_EQUALS_NOT_SYMMETRIC"/>
+  </Match>
+  <Match>
+    <!-- Naked notify is by design (doesn't matter which thread is unblocked 
-->
+    <Or>
+      <Class name="org.apache.tomcat.dbcp.pool.impl.GenericKeyedObjectPool"/>
+      <Class name="org.apache.tomcat.dbcp.pool.impl.GenericObjectPool"/>
+    </Or>
+    <Or>
+      <Method name="allocate"/>
+      <Method name="close"/>
+    </Or>
+    <Bug pattern="NN_NAKED_NOTIFY"/>
+  </Match>
+  <Match>
     <!-- Return value is ignored but a null result will trigger an exception 
-->
     <Class name="org.apache.tomcat.jdbc.pool.ConnectionPool$ConnectionFuture" 
/>
     <Method name="get" />
@@ -642,6 +691,12 @@
     <Bug code="SF" />
   </Match>
   <Match>
+    <!-- Returns null by design -->
+    <Class name="org.apache.tomcat.util.http.parser.EntityTag" />
+     <Method name="compareEntityTag"/>
+    <Bug pattern="NP_BOOLEAN_RETURN_NULL" />
+  </Match>
+  <Match>
     <!-- Hiding of field in superclass is deliberate -->
     <Class name="org.apache.tomcat.util.modeler.NotificationInfo"/>
     <Field name="info" />
@@ -679,6 +734,15 @@
     <Bug code="ML" />
   </Match>
   <Match>
+    <!-- Modifications to SocketLists are always protected by syncs -->
+    <Class name="org.apache.tomcat.util.net.AprEndpoint$SocketList"/>
+    <Or>
+      <Method name="add"/>
+      <Method name="remove"/>
+    </Or>
+    <Bug pattern="VO_VOLATILE_INCREMENT"/>
+  </Match>
+  <Match>
     <!-- Sync is there to protect referenced object not field -->
     <Class 
name="org.apache.tomcat.util.net.AprEndpoint$SocketWithOptionsProcessor"/>
     <Method name="run"/>
@@ -740,6 +804,12 @@
     <Bug code="UG" />
   </Match>
   <Match>
+    <!-- Deliberate use of run() for the purposes of the test -->
+    <Class 
name="org.apache.catalina.core.TestAsyncContextStateChanges$AsyncServlet"/>
+    <Method name="doGet"/>
+    <Bug pattern="RU_INVOKE_RUN"/>
+  </Match>
+  <Match>
     <Or>
       <Class name="org.apache.catalina.startup.TestListener$SCL" />
       <Class name="org.apache.catalina.startup.TestListener$SCL3" />
@@ -841,6 +911,12 @@
     <Bug code="DE" />
   </Match>
   <Match>
+    <!-- Concrete Map type not affected -->
+    <Class name="org.apache.catalina.util.TestParameterMap" />
+    <Method name="testEntrySetImmutabilityAfterLocked" />
+    <Bug pattern="DMI_ENTRY_SETS_MAY_REUSE_ENTRY_OBJECTS" />
+  </Match>
+  <Match>
     <!-- Deliberate hack for the purposes of the test -->
     <Class 
name="org.apache.catalina.valves.TestStuckThreadDetectionValve$StickingServlet"/>
     <Field name="wasInterrupted"/>
@@ -855,6 +931,31 @@
     <Bug pattern="STCAL_STATIC_SIMPLE_DATE_FORMAT_INSTANCE" />
   </Match>
   <Match>
+    <!-- Exceptions are deliberately ignored -->
+    <Class 
name="org.apache.tomcat.dbcp.dbcp.AbstractConnectionPoolTest$TestThread"/>
+    <Method name="run"/>
+    <Bug pattern="DE_MIGHT_IGNORE"/>
+  </Match>
+  <Match>
+    <!-- Sleep with lock is deliberate -->
+    <Class name="org.apache.tomcat.dbcp.dbcp.TestBasicDataSource"/>
+    <Method name="testCreateDataSourceCleanupEvictor"/>
+    <Bug pattern="SWL_SLEEP_WITH_LOCK_HELD"/>
+  </Match>
+  <Match>
+    <!-- nulls are intentional in the tests -->
+    <Or>
+      <Class name="org.apache.tomcat.dbcp.dbcp.TesterConnection"/>
+      <Class name="org.apache.tomcat.dbcp.dbcp.TesterPreparedStatement"/>
+      <Class name="org.apache.tomcat.dbcp.dbcp.TesterStatement"/>
+    </Or>
+    <Or>
+      <Method name="executeQuery"/>
+      <Method name="prepareStatement"/>
+    </Or>
+    <Bug pattern="NP_NONNULL_RETURN_VIOLATION"/>
+  </Match>
+  <Match>
     <!-- Use of statics is unavoidable in all cases -->
     <!-- Better to use it consistently rather than only where necessary -->
     <Class name="org.apache.tomcat.jdbc.pool.interceptor.TestInterceptor" />
@@ -913,6 +1014,9 @@
       <Method name="testBasicPrefix" />
       <Method name="testQuote2" />
       <Method name="testDuplicate01" />
+      <Method name="testSpecIssue194a" />
+      <Method name="testSpecIssue194b" />
+      <Method name="testSpecIssue194c" />
     </Or>
     <Bug pattern="DLS_DEAD_LOCAL_STORE"/>
   </Match>


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to