blob: 2a352ccfb031fa959a40da091499c4315882e384 [file]
<FindBugsFilter>
<!-- Allow command line utilities, which follow pattern *Main.java, to call
system exit -->
<Match>
<Class name="~org\.apache\.zookeeper\..*Main" />
<Bug pattern="DM_EXIT" />
</Match>
<!-- This is too complicated to resolve/ingrained into the architecture
In particular we want to make sure we exit if this occurs
Also notice logged as fatal error -->
<Match>
<Class name="org.apache.zookeeper.server.ZooKeeperCriticalThread" />
<Method name="handleException" />
<Bug pattern="DM_EXIT" />
</Match>
<!-- In particular we want to make sure we exit if this occurs, unrecoverable.
Also notice logged as fatal error -->
<Match>
<Class name="org.apache.zookeeper.server.ZooKeeperServer" />
<Method name="takeSnapshot" />
<Bug pattern="DM_EXIT" />
</Match>
<!-- We want to catch all exceptions and cleanup, regardless of source
(incl runtime) -->
<Match>
<Class name="org.apache.zookeeper.ClientCnxn$SendThread" />
<Method name="run" />
<Bug pattern="REC_CATCH_EXCEPTION" />
</Match>
<!-- Committing out of order is an unrecoverable error, so we should
really exit -->
<Match>
<Class name="org.apache.zookeeper.server.quorum.FollowerZooKeeperServer" />
<Method name="commit" />
<Bug pattern="DM_EXIT" />
</Match>
<!-- Two unrecoverable errors while following the leader -->
<Match>
<Class name="org.apache.zookeeper.server.quorum.Learner" />
<Method name="syncWithLeader" />
<Bug pattern="DM_EXIT" />
</Match>
<!-- QuorumCnxManager Listener thread fails to bind election port -->
<Match>
<Class name="org.apache.zookeeper.server.quorum.QuorumCnxManager$Listener"/>
<Method name="run" />
<Bug pattern="DM_EXIT" />
</Match>
<!-- Failed to create watch manager is a unrecoverable error -->
<Match>
<Class name="org.apache.zookeeper.server.DataTree" />
<Bug pattern="DM_EXIT" />
</Match>
<Match>
<Package name="org.apache.jute.compiler.generated" />
</Match>
<Match>
<Package name="~org\.apache\.zookeeper\.(proto|data|txn)" />
<Bug code="EI, EI2" />
</Match>
<Match>
<Class name="org.apache.zookeeper.server.DataNode" />
<Bug code="EI2, EI"/>
</Match>
<Match>
<Class name="org.apache.zookeeper.server.quorum.QuorumPacket" />
<Bug code="EI2, EI" />
</Match>
<Match>
<Class name="org.apache.zookeeper.server.quorum.QuorumAuthPacket" />
<Bug code="EI2, EI" />
</Match>
<Match>
<Class name="org.apache.zookeeper.ClientCnxn"/>
<Bug code="EI, EI2" />
</Match>
<Match>
<Class name="org.apache.zookeeper.server.DataNode"/>
<Field name="children"/>
<Bug code="IS"/>
</Match>
<Match>
<Class name="org.apache.zookeeper.server.quorum.Leader"/>
<Field name="lastProposed"/>
<Bug code="IS"/>
</Match>
<Match>
<Class name="org.apache.zookeeper.server.persistence.FileTxnLog"/>
<Field name="serverStats"/>
<Bug code="IS"/>
</Match>
<!-- The iterate function is non-thread safe, the caller will synchronize
on the BitHHashSet object -->
<Match>
<Class name="org.apache.zookeeper.server.util.BitHashSet" />
<Field name="elementCount" />
<Bug code="IS" />
</Match>
<Match>
<Class name="org.apache.zookeeper.server.quorum.LearnerSessionTracker"/>
<Bug code="UrF"/>
</Match>
<!-- these are old classes just for upgrading and should go away -->
<Match>
<Class name="org.apache.zookeeper.server.upgrade.DataNodeV1"/>
</Match>
<Match>
<Class name="org.apache.zookeeper.server.upgrade.DataTreeV1"/>
</Match>
<!-- References code in a generated file that may or maynot be null -->
<Match>
<Class name="org.apache.zookeeper.Version" />
<Method name="getVersion" />
<Bug pattern="RCN_REDUNDANT_NULLCHECK_OF_NULL_VALUE" />
</Match>
<!-- sync'd object is also being used to protect the isrunning flag, this is ok -->
<Match>
<Class name="org.apache.zookeeper.ClientCnxn$EventThread"/>
<Bug code="JLM"/>
<Or>
<Method name="queuePacket" />
<Method name="run" />
</Or>
</Match>
<!-- Synchronize on the AtomicInteger to do wait/notify, but not relying
on the synchronization to control the AtomicInteger value update,
so it's not a problem -->
<Match>
<Class name="org.apache.zookeeper.server.watch.WatcherCleaner" />
<Bug code="JLM" />
<Method name="addDeadWatcher" />
</Match>
<Match>
<Class name="org.apache.zookeeper.server.watch.WatcherCleaner$1" />
<Bug code="JLM" />
<Method name="doWork" />
</Match>
<Match>
<Class name="org.apache.zookeeper.server.quorum.QuorumPeer"/>
<Bug pattern="OS_OPEN_STREAM" />
<Method name="writeLongToFile" />
</Match>
<!-- this is a helper routine to wakeup the main thread with the
state change happening in the routines that call it -->
<Match>
<Class name="org.apache.zookeeper.server.quorum.CommitProcessor"/>
<Bug pattern="NN_NAKED_NOTIFY" />
<Method name="wakeup" />
</Match>
<!-- Disable encoding warnings -->
<Match>
<Bug pattern="DM_DEFAULT_ENCODING" />
</Match>
<!-- Disable 'Malicious code vulnerability warnings' due to mutable collection types in interface.
Undo this when ZOOKEEPER-1362 is done. -->
<Match>
<Class name="org.apache.zookeeper.ZooDefs$Ids"/>
<Bug pattern="MS_MUTABLE_COLLECTION" />
</Match>
<!-- Disable 'Return value of method without side effect is ignored' for EphemeralType. The default
version just returns 0 which triggers the warning. Findbugs can't seem to find the override in
the TTL value of the enum however -->
<Match>
<Class name="org.apache.zookeeper.server.EphemeralType"/>
<Bug pattern="RV_RETURN_VALUE_IGNORED_NO_SIDE_EFFECT" />
</Match>
<!-- Disable 'Inconsistent synchronization' to allow the ServerSocket to listen without
locking the class -->
<Match>
<Class name="org.apache.zookeeper.server.quorum.ObserverMaster"/>
<Field name="ss"/>
<Bug code="IS"/>
</Match>
<!-- References code in a generated file that may or maynot be null -->
<Match>
<Class name="org.apache.zookeeper.version.VersionInfoMain" />
<Method name="main" />
<Bug pattern="RCN_REDUNDANT_NULLCHECK_OF_NULL_VALUE" />
</Match>
</FindBugsFilter>