<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>