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

    <!-- Exclusion filter for running FindBugs against Apache Harmony -->

    <!--
        Format and code information is available here
        http://findbugs.sourceforge.net/manual/filter.html
    -->

<FindBugsFilter>

    <!--
        RI also returns null here
    -->
    <Match>
        <Class name="javax.accessibility.AccessibleStateSet" />
        <Method name="toString" />
        <Bug pattern="NP_TOSTRING_COULD_RETURN_NULL" />
    </Match> 

    <!--
        toString(String) calls are required for these instances, 
        from HARMONY-6008 ([classlib] Fix japi found differences between harmony 
        and spec)
    -->
    <Match>
        <Class name="javax.accessibility.AccessibleAction" />
        <Method name="&lt;clinit&gt;" />
        <Bug pattern="DM_STRING_CTOR" />
    </Match>
    <Match>
        <Class name="javax.accessibility.AccessibleRelation" />
        <Method name="&lt;clinit&gt;" />
        <Bug pattern="DM_STRING_CTOR" />
    </Match> 


</FindBugsFilter>

