<!--

    Copyright (c) 2011, 2018 Oracle and/or its affiliates. All rights reserved.

    This program and the accompanying materials are made available under the
    terms of the Eclipse Public License v. 2.0, which is available at
    http://www.eclipse.org/legal/epl-2.0.

    This Source Code may also be made available under the following Secondary
    Licenses when the conditions for such availability set forth in the
    Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
    version 2 with the GNU Classpath Exception, which is available at
    https://www.gnu.org/software/classpath/license.html.

    SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0

-->

<FindBugsFilter>
    <!--
        The "provider" variable is used as a convenient way to access all
        the elements of the collection for the side effect of initializing
        them, the providers don't actually need to be used here.
    -->
    <Match>
        <Class name="com.sun.enterprise.naming.impl.SerialInitContextFactory"/>
        <Method name="getInitialContext"/>
        <Bug pattern="DLS_DEAD_LOCAL_STORE"/>
    </Match>

    <!--
        The "debug" static field is final and set to false, so the code
        that calls this method disappears.
    -->
    <Match>
        <Class name="com.sun.enterprise.naming.impl.TransientContext"/>
        <Method name="print"/>
        <Bug pattern="UPM_UNCALLED_PRIVATE_METHOD"/>
    </Match>
</FindBugsFilter>
