<?xml version="1.0" encoding="UTF-8"?>
<!--

    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.

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


    <!-- pattern sort by alpha -->

    <Match>
        <Bug pattern="BC_UNCONFIRMED_CAST"/>
    </Match>

    <Match>
        <Bug pattern="BC_VACUOUS_INSTANCEOF"/>
    </Match>

    <Match>
        <Bug pattern="DC_DOUBLECHECK"/>
    </Match>

    <Match>
        <Bug pattern="DC_PARTIALLY_CONSTRUCTED"/>
    </Match>

    <Match>
        <Bug pattern="EC_UNRELATED_TYPES"/>
    </Match>

    <Match>
        <Bug pattern="EI_EXPOSE_REP"/>
    </Match>

    <Match>
        <Bug pattern="EI_EXPOSE_REP2"/>
    </Match>

    <Match>
        <Bug pattern="EI_EXPOSE_STATIC_REP2"/>
    </Match>

    <Match>
        <Bug pattern="EQ_COMPARETO_USE_OBJECT_EQUALS"/>
    </Match>

    <Match>
        <Bug pattern="EQ_DOESNT_OVERRIDE_EQUALS"/>
    </Match>

    <Match>
        <Bug pattern="EQ_OVERRIDING_EQUALS_NOT_SYMMETRIC"/>
    </Match>

    <Match>
        <Bug pattern="ICAST_IDIV_CAST_TO_DOUBLE"/>
    </Match>

    <Match>
        <Bug pattern="ICAST_INTEGER_MULTIPLY_CAST_TO_LONG"/>
    </Match>

    <Match>
        <Bug pattern="IS2_INCONSISTENT_SYNC"/>
    </Match>

    <Match>
        <Bug pattern="MF_CLASS_MASKS_FIELD"/>
    </Match>

    <Match>
        <Bug pattern="MS_CANNOT_BE_FINAL"/>
    </Match>

    <Match>
        <Bug pattern="MS_EXPOSE_REP"/>
    </Match>

    <Match>
        <Bug pattern="MS_MUTABLE_ARRAY"/>
    </Match>

    <Match>
        <Bug pattern="MS_MUTABLE_COLLECTION_PKGPROTECT"/>
    </Match>

    <Match>
        <Bug pattern="MS_OOI_PKGPROTECT"/>
    </Match>

    <Match>
        <Bug pattern="MS_SHOULD_BE_FINAL"/>
    </Match>

    <Match>
        <Bug pattern="MS_PKGPROTECT"/>
    </Match>

    <Match>
        <Bug pattern="NM_SAME_SIMPLE_NAME_AS_SUPERCLASS"/>
    </Match>

    <Match>
        <Bug pattern="NP_NONNULL_RETURN_VIOLATION"/>
    </Match>

    <Match>
        <Bug pattern="NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE"/>
    </Match>

    <Match>
        <Bug pattern="NP_UNWRITTEN_PUBLIC_OR_PROTECTED_FIELD"/>
    </Match>

    <Match>
        <Bug pattern="OBL_UNSATISFIED_OBLIGATION"/>
    </Match>

    <Match>
        <Bug pattern="RC_REF_COMPARISON"/>
    </Match>

    <Match>
        <Bug pattern="RCN_REDUNDANT_NULLCHECK_WOULD_HAVE_BEEN_A_NPE"/>
    </Match>

    <Match>
        <Bug pattern="REFLC_REFLECTION_MAY_INCREASE_ACCESSIBILITY_OF_CLASS"/>
    </Match>

    <Match>
        <Bug pattern="RV_NEGATING_RESULT_OF_COMPARETO"/>
    </Match>

    <Match>
        <Bug pattern="SE_BAD_FIELD"/>
    </Match>

    <Match>
        <Bug pattern="ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD"/>
    </Match>

    <Match>
        <Bug pattern="RV_RETURN_VALUE_IGNORED_BAD_PRACTICE"/>
    </Match>

    <Match>
        <Bug pattern="SSD_DO_NOT_USE_INSTANCE_LOCK_ON_SHARED_STATIC_DATA"/>
    </Match>

    <Match>
        <Bug pattern="URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD"/>
    </Match>

    <Match>
        <Bug pattern="UUF_UNUSED_PUBLIC_OR_PROTECTED_FIELD"/>
    </Match>

    <Match>
        <Bug pattern="UWF_UNWRITTEN_PUBLIC_OR_PROTECTED_FIELD"/>
    </Match>

    <Match>
        <Bug pattern="VA_FORMAT_STRING_USES_NEWLINE"/>
    </Match>

</FindBugsFilter>
