aboutsummaryrefslogtreecommitdiff
path: root/findbugs-exclude.xml
diff options
context:
space:
mode:
Diffstat (limited to 'findbugs-exclude.xml')
-rw-r--r--findbugs-exclude.xml106
1 files changed, 106 insertions, 0 deletions
diff --git a/findbugs-exclude.xml b/findbugs-exclude.xml
new file mode 100644
index 00000000..014f9a9b
--- /dev/null
+++ b/findbugs-exclude.xml
@@ -0,0 +1,106 @@
+<FindBugsFilter>
+ <Match>
+ <!-- Reason: Null has a different meaning than a zero-length array in this case. -->
+ <Bug pattern="PZLA_PREFER_ZERO_LENGTH_ARRAYS"/>
+ <Class name="io.opencensus.stats.MutableDistribution"/>
+ <Method name="getInternalBucketCountsArray"/>
+ </Match>
+ <Match>
+ <!-- Reason: Equal is implemented in the AutoValue generated class. -->
+ <Bug pattern="EQ_COMPARETO_USE_OBJECT_EQUALS"/>
+ <Class name="io.opencensus.common.Timestamp"/>
+ <Method name="compareTo"/>
+ </Match>
+ <Match>
+ <!-- Reason: Equal is implemented in the AutoValue generated class. -->
+ <Bug pattern="EQ_COMPARETO_USE_OBJECT_EQUALS"/>
+ <Class name="io.opencensus.common.Duration"/>
+ <Method name="compareTo"/>
+ </Match>
+ <Match>
+ <!-- Reason: BaseMessageEvent only has two visible subclasses. -->
+ <Bug pattern="BC_UNCONFIRMED_CAST"/>
+ <Class name="io.opencensus.trace.internal.BaseMessageEventUtils"/>
+ </Match>
+ <Match>
+ <!-- Reason: This test is testing for a NPE. -->
+ <Bug pattern="NP_NONNULL_PARAM_VIOLATION"/>
+ <Class name="io.opencensus.internal.UtilsTest"/>
+ <Method name="checkNotNull"/>
+ </Match>
+ <Match>
+ <!-- Reason: This test is testing for a NPE. -->
+ <Bug pattern="NP_NONNULL_PARAM_VIOLATION"/>
+ <Class name="io.opencensus.internal.UtilsTest"/>
+ <Method name="checkNotNull_NullErrorMessage"/>
+ </Match>
+ <Match>
+ <!-- Reason: It seems like FindBugs incorrectly assumes that all -->
+ <!-- Throwables are subclasses of Error or Exception. -->
+ <Bug pattern="BC_VACUOUS_INSTANCEOF"/>
+ <Class name="io.opencensus.trace.CurrentSpanUtils$CallableInSpan"/>
+ <Method name="call"/>
+ </Match>
+ <Match>
+ <!-- Reason: Protobuf auto-generated code. -->
+ <Bug pattern="UCF_USELESS_CONTROL_FLOW"/>
+ <Class name="io.opencensus.contrib.appengine.standard.util.TraceIdProto$Builder"/>
+ <Method name="maybeForceBuilderInitialization"/>
+ </Match>
+ <Match>
+ <!-- Reason: The synchronization in the setState is for the side effects not for the state. -->
+ <Bug pattern="UG_SYNC_SET_UNSYNC_GET"/>
+ <Class name="io.opencensus.implcore.stats.StatsComponentImplBase"/>
+ </Match>
+
+ <!-- Suppress some FindBugs warnings related to performance or robustness -->
+ <!-- in test classes, where those issues are less important. -->
+ <Match>
+ <!-- Reason: Only needed for performance. -->
+ <Bug pattern="SIC_INNER_SHOULD_BE_STATIC_ANON"/>
+ <Source name="~.*Test\.java"/>
+ </Match>
+ <Match>
+ <!-- Reason: Only needed for performance. -->
+ <Bug pattern="WMI_WRONG_MAP_ITERATOR"/>
+ <Source name="~.*Test\.java"/>
+ </Match>
+ <Match>
+ <!-- Reason: Only needed for performance. -->
+ <Bug pattern="UM_UNNECESSARY_MATH"/>
+ <Source name="~.*Test\.java"/>
+ </Match>
+ <Match>
+ <!-- Reason: This is less important in a test environment. -->
+ <Bug pattern="DP_CREATE_CLASSLOADER_INSIDE_DO_PRIVILEGED"/>
+ <Source name="~.*Test\.java"/>
+ </Match>
+ <Match>
+ <!-- Reason: Many classes initialize fields in @Before methods. -->
+ <Bug pattern="UWF_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR"/>
+ <Source name="~.*Test\.java"/>
+ </Match>
+
+ <!-- Suppress all FindBugs warnings about NullPointerExceptions in -->
+ <!-- non-test code. They are redundant with the Checker Framework's -->
+ <!-- warnings, and they sometimes conflict. These warnings are still -->
+ <!-- useful in test code, where we don't use the Checker Framework. -->
+ <Match>
+ <Bug code="NP"/>
+ <Not>
+ <Source name="~.*Test\.java"/>
+ </Not>
+ </Match>
+ <Match>
+ <Bug pattern="UR_UNINIT_READ"/>
+ <Not>
+ <Source name="~.*Test\.java"/>
+ </Not>
+ </Match>
+ <Match>
+ <Bug pattern="UWF_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR"/>
+ <Not>
+ <Source name="~.*Test\.java"/>
+ </Not>
+ </Match>
+</FindBugsFilter>