aboutsummaryrefslogtreecommitdiff
path: root/src/conf/spotbugs-exclude-filter.xml
diff options
context:
space:
mode:
Diffstat (limited to 'src/conf/spotbugs-exclude-filter.xml')
-rw-r--r--src/conf/spotbugs-exclude-filter.xml197
1 files changed, 197 insertions, 0 deletions
diff --git a/src/conf/spotbugs-exclude-filter.xml b/src/conf/spotbugs-exclude-filter.xml
new file mode 100644
index 000000000..4d609e71e
--- /dev/null
+++ b/src/conf/spotbugs-exclude-filter.xml
@@ -0,0 +1,197 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.
+-->
+
+<!--
+ This file contains some false positive bugs detected by findbugs. Their
+ false positive nature has been analyzed individually and they have been
+ put here to instruct findbugs it must ignore them.
+-->
+<FindBugsFilter
+ xmlns="https://github.com/spotbugs/filter/3.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="https://github.com/spotbugs/filter/3.0.0 https://raw.githubusercontent.com/spotbugs/spotbugs/3.1.0/spotbugs/etc/findbugsfilter.xsd">
+
+ <!-- TODO Can any of these be done without breaking binary compatibility? -->
+ <Match>
+ <Class name="~.*" />
+ <Or>
+ <Bug pattern="EI_EXPOSE_REP" />
+ <Bug pattern="EI_EXPOSE_REP2" />
+ <Bug pattern="MS_EXPOSE_REP" />
+ </Or>
+ </Match>
+
+ <!-- TODO Can any of these be done without breaking binary compatibility? -->
+ <Match>
+ <Class name="org.apache.commons.lang3.reflect.FieldUtils" />
+ <Bug pattern="REFLF_REFLECTION_MAY_INCREASE_ACCESSIBILITY_OF_FIELD" />
+ </Match>
+
+ <!-- https://github.com/spotbugs/spotbugs/issues/1504 -->
+ <Match>
+ <Class name="org.apache.commons.lang3.ArrayUtils" />
+ <Method name="shuffle" />
+ <Bug pattern="DMI_RANDOM_USED_ONLY_ONCE" />
+ </Match>
+
+ <!-- https://github.com/spotbugs/spotbugs/issues/1504 -->
+ <Match>
+ <Class name="org.apache.commons.lang3.RandomStringUtils" />
+ <Method name="random" />
+ <Bug pattern="DMI_RANDOM_USED_ONLY_ONCE" />
+ </Match>
+
+ <Match>
+ <Class name="org.apache.commons.lang3.ArrayUtils" />
+ <Method name="addFirst" />
+ <Bug pattern="NP_LOAD_OF_KNOWN_NULL_VALUE" />
+ </Match>
+
+ <!-- Reason: Optimization to use == -->
+ <Match>
+ <Class name="org.apache.commons.lang3.BooleanUtils" />
+ <Or>
+ <Method name="toBoolean" />
+ <Method name="toBooleanObject" />
+ </Or>
+ <Bug pattern="ES_COMPARING_PARAMETER_STRING_WITH_EQ" />
+ </Match>
+ <Match>
+ <Class name="org.apache.commons.lang3.BooleanUtils" />
+ <Method name="toBoolean" />
+ <Bug pattern="RC_REF_COMPARISON_BAD_PRACTICE_BOOLEAN" />
+ </Match>
+
+ <!-- Reason: Behavior documented in javadoc -->
+ <Match>
+ <Class name="org.apache.commons.lang3.BooleanUtils" />
+ <Or>
+ <Method name="negate" />
+ <Method name="toBooleanObject" />
+ </Or>
+ <Bug pattern="NP_BOOLEAN_RETURN_NULL" />
+ </Match>
+
+ <!-- Reason: base class cannot be changed and field is properly checked against null so behavior is OK -->
+ <Match>
+ <Class name="org.apache.commons.lang3.text.ExtendedMessageFormat" />
+ <Method name="applyPattern" />
+ <Bug pattern="UR_UNINIT_READ_CALLED_FROM_SUPER_CONSTRUCTOR" />
+ </Match>
+
+ <!-- Reason: Optimization to use == -->
+ <Match>
+ <Class name="org.apache.commons.lang3.StringUtils" />
+ <Or>
+ <Method name="indexOfDifference"/>
+ <Method name="compare" params="java.lang.String,java.lang.String,boolean"/>
+ <Method name="compareIgnoreCase" params="java.lang.String,java.lang.String,boolean"/>
+ </Or>
+ <Bug pattern="ES_COMPARING_PARAMETER_STRING_WITH_EQ" />
+ </Match>
+
+ <!-- Reason: Very much intended to do a fall through on the switch -->
+ <Match>
+ <Class name="org.apache.commons.lang3.math.NumberUtils" />
+ <Method name="createNumber"/>
+ <Bug pattern="SF_SWITCH_FALLTHROUGH" />
+ </Match>
+
+ <!-- Reason: Very much intended to do a fall through on the switch -->
+ <Match>
+ <Class name="org.apache.commons.lang3.time.DateUtils" />
+ <Method name="getFragment"/>
+ <Bug pattern="SF_SWITCH_FALLTHROUGH" />
+ </Match>
+
+ <!-- Reason: toProperString is lazily loaded -->
+ <Match>
+ <Class name="org.apache.commons.lang3.math.Fraction" />
+ <Field name="toProperString" />
+ <Bug pattern="SE_TRANSIENT_FIELD_NOT_RESTORED" />
+ </Match>
+
+ <!-- Reason: It does call super.clone(), but via a subsequent method -->
+ <Match>
+ <Class name="org.apache.commons.lang3.text.StrTokenizer" />
+ <Method name="clone"/>
+ <Bug pattern="CN_IDIOM_NO_SUPER_CALL" />
+ </Match>
+
+ <!-- Reason: FindBugs 2.0.2 used in maven-findbugs-plugin 2.5.2 seems to have problems with detection of default cases
+ in switch statements. All the excluded methods have switch statements that contain a default case. -->
+ <Match>
+ <Class name="org.apache.commons.lang3.math.NumberUtils"/>
+ <Method name="createNumber" />
+ <Bug pattern="SF_SWITCH_NO_DEFAULT" />
+ </Match>
+ <!-- Reason: FindBugs does not correctly recognize default branches in switch statements without break statements.
+ See, e.g., the report at https://sourceforge.net/p/findbugs/bugs/1298 -->
+ <Match>
+ <Class name="org.apache.commons.lang3.time.FastDateParser"/>
+ <Or>
+ <Method name="getStrategy" />
+ <Method name="simpleQuote" params="java.lang.StringBuilder, java.lang.String"/>
+ </Or>
+ <Bug pattern="SF_SWITCH_NO_DEFAULT" />
+ </Match>
+
+ <!-- Reason: FindBugs cannot correctly recognize default branches in switch statements without break statements.
+ See, e.g., the report at https://sourceforge.net/p/findbugs/bugs/1298 -->
+ <Match>
+ <Class name="org.apache.commons.lang3.time.FastDatePrinter"/>
+ <Method name="appendFullDigits" params="java.lang.Appendable, int, int"/>
+ <Bug pattern="SF_SWITCH_NO_DEFAULT" />
+ </Match>
+
+ <!-- Reason: The fallthrough on the switch statement is intentional -->
+ <Match>
+ <Class name="org.apache.commons.lang3.time.FastDatePrinter"/>
+ <Method name="appendFullDigits" params="java.lang.Appendable, int, int"/>
+ <Bug pattern="SF_SWITCH_FALLTHROUGH" />
+ </Match>
+
+ <!-- Reason: Internal class that is used only as a key for an internal FormatCache. For this reason we can
+ be sure, that equals will never be called with null or types other than MultipartKey.
+ -->
+ <Match>
+ <Class name="org.apache.commons.lang3.time.FormatCache$MultipartKey" />
+ <Method name="equals" />
+ <Bug pattern="BC_EQUALS_METHOD_SHOULD_WORK_FOR_ALL_OBJECTS" />
+ </Match>
+ <Match>
+ <Class name="org.apache.commons.lang3.time.FormatCache$MultipartKey" />
+ <Method name="equals" />
+ <Bug pattern="NP_EQUALS_SHOULD_HANDLE_NULL_ARGUMENT" />
+ </Match>
+
+ <!-- Reason: toString() can return null! -->
+ <Match>
+ <Class name="org.apache.commons.lang3.compare.ObjectToStringComparator" />
+ <Method name="compare" />
+ <Bug pattern="RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE" />
+ </Match>
+
+ <!-- Reason: requireNonNull is supposed to take a nullable parameter,
+ whatever Spotbugs thinks of it. -->
+ <Match>
+ <Class name="org.apache.commons.lang3.function.Objects" />
+ <Method name="requireNonNull" />
+ <Bug pattern="NP_PARAMETER_MUST_BE_NONNULL_BUT_MARKED_AS_NULLABLE" />
+ </Match>
+</FindBugsFilter>