Introduce spotbug plugin
[cps.git] / spotbugs / src / main / resources / spotbugs-exclude.xml
1 <FindBugsFilter>
2   <Match>
3     <Or>
4       <!-- Anonymous inner classes are very common. -->
5       <Bug pattern="SIC_INNER_SHOULD_BE_STATIC_ANON" />
6
7       <!-- We use static slf4j Logger (this rule is from KengoTODA/findbugs-slf4j jp.skypencil.findbugs.slf4:bug-pattern) -->
8       <Bug pattern="SLF4J_LOGGER_SHOULD_BE_NON_STATIC" />
9
10       <!-- Guava 25.1+ uses the Checker Framework's @Nullable which SpotBugs doesn't handle correctly, even though it's
11            supposed to; see https://github.com/spotbugs/spotbugs/issues/743 -->
12       <Bug pattern="NP_NONNULL_PARAM_VIOLATION" />
13       <Bug pattern="NP_NULL_PARAM_DEREF" />
14       <Bug pattern="NP_PARAMETER_MUST_BE_NONNULL_BUT_MARKED_AS_NULLABLE" />
15       <Bug pattern="RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE" />
16
17       <!-- https://github.com/spotbugs/spotbugs/issues/511. Strict reading of Object.equals() contract means that
18            evenever equals() behaviour is defined, all implementations need to adhere to it. The only reason
19            to override the method (assuming correct API design, of course) is to provide a more efficient
20            implementation. This rule would be forcing a @SuppressFBWarnings on perfectly compliant classes. -->
21       <Bug pattern="EQ_DOESNT_OVERRIDE_EQUALS"/>
22
23       <!-- https://github.com/spotbugs/spotbugs/issues/756. spotbugs does not grok Java 11's try-with-resources -->
24       <Bug pattern="RCN_REDUNDANT_NULLCHECK_WOULD_HAVE_BEEN_A_NPE"/>
25     </Or>
26   </Match>
27 </FindBugsFilter>