<!--

    Copyright (c) 2010, 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>
    <!--
        Tim Quinn's code: forces garbage collection;
        extremely dubious except in benchmarking code (H).
    -->
    <Match>
        <Class name="com.sun.enterprise.util.io.FileUtils"/>
        <Method name="doWithRetry"/>
        <Bug pattern="DM_GC"/>
        <Priority value="1"/>
    </Match>

    <!--
        We're purposely using Booleanfor its tri-state behavior,
        and users of the API need to know that.
    -->
    <Match>
        <Class name="com.sun.enterprise.universal.process.ProcessUtils"/>
        <Method name="isProcessRunning"/>
        <Bug pattern="NP_BOOLEAN_RETURN_NULL"/>
    </Match>

    <!--
        We have copied sun.misc.Base64Decode and can't
        use java.util.Base64 as of now due to JDK7 usage.
    -->
    <Match>
        <Class name="com.sun.enterprise.universal.GFBase64Decoder"/>
        <Method name="decodeAtom"/>
        <Bug pattern="SF_SWITCH_FALLTHROUGH"/>
    </Match>

    <!--
        We have copied sun.misc.Base64Decode and can't
        use java.util.Base64 as of now due to JDK7 usage.
    -->
    <Match>
        <Class name="com.sun.enterprise.universal.GFBase64Decoder"/>
        <Method name="decodeAtom"/>
        <Bug pattern="SF_SWITCH_NO_DEFAULT"/>
    </Match>
</FindBugsFilter>
