summaryrefslogtreecommitdiffstats
path: root/spotbugs/src/main/resources/spotbugs-exclude.xml
blob: ab37f41baee8ceb271b2111fac1ce02ed7938d3c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<!--
  ============LICENSE_START=======================================================
  Copyright (c) 2021 Pantheon.tech.
  Modifications Copyright (C) 2021 Bell Canada.
  ================================================================================
  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

        http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
  ============LICENSE_END=========================================================
-->

<FindBugsFilter>
  <Match>
    <!-- Ignore generated code -->
    <Source name="~.*generated-sources.*.java"/>
  </Match>
  <Match>
    <Or>
      <!-- Anonymous inner classes are very common. -->
      <Bug pattern="SIC_INNER_SHOULD_BE_STATIC_ANON" />

      <!-- We use static slf4j Logger (this rule is from KengoTODA/findbugs-slf4j jp.skypencil.findbugs.slf4:bug-pattern) -->
      <Bug pattern="SLF4J_LOGGER_SHOULD_BE_NON_STATIC" />

      <!-- Guava 25.1+ uses the Checker Framework's @Nullable which SpotBugs doesn't handle correctly, even though it's
           supposed to; see https://github.com/spotbugs/spotbugs/issues/743 -->
      <Bug pattern="NP_NONNULL_PARAM_VIOLATION" />
      <Bug pattern="NP_NULL_PARAM_DEREF" />
      <Bug pattern="NP_PARAMETER_MUST_BE_NONNULL_BUT_MARKED_AS_NULLABLE" />
      <Bug pattern="RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE" />

      <!-- https://stackoverflow.com/a/34674776. Doesn't detect Lombok All Args Constructor variables being used with map get key and value, which can lead to spotbugs being detected
      on used fields -->
      <Bug pattern="URF_UNREAD_FIELD"/>

      <!-- https://github.com/spotbugs/spotbugs/issues/511. Strict reading of Object.equals() contract means that
           evenever equals() behaviour is defined, all implementations need to adhere to it. The only reason
           to override the method (assuming correct API design, of course) is to provide a more efficient
           implementation. This rule would be forcing a @SuppressFBWarnings on perfectly compliant classes. -->
      <Bug pattern="EQ_DOESNT_OVERRIDE_EQUALS"/>

      <!-- https://github.com/spotbugs/spotbugs/issues/756. spotbugs does not grok Java 11's try-with-resources -->
      <Bug pattern="RCN_REDUNDANT_NULLCHECK_WOULD_HAVE_BEEN_A_NPE"/>
      <Bug pattern="EI_EXPOSE_REP"/>
      <Bug pattern="EI_EXPOSE_REP2"/>
    </Or>
  </Match>

</FindBugsFilter>