<!--

    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>
    <!--
         Request: Mahesh
         Approval: Bill
     -->
    <Match>
        <Class name="com.sun.ejb.containers.CMCSingletonContainer"/>
        <Bug pattern="UL_UNRELEASED_LOCK"/>
        <Priority value="1"/>
    </Match>

    <!-- lower priority bugs below here -->

    <!--
        Tasks wait for only one condition, and any task that's woken up can
        handle the condition, so notifyAll is unnecessary.
    -->
    <Match>
        <Class name="com.sun.ejb.containers.MessageBeanContainer$ASyncClientShutdownTask"/>
        <Method name="run"/>
        <Bug pattern="NO_NOTIFY_NOT_NOTIFYALL"/>
    </Match>

    <!--
        These public fields are set and read in other modules.
    -->
    <Match>
        <Class name="com.sun.ejb.InvocationInfo"/>
        <Field name="startsWithRemove"/>
        <Bug pattern="URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD"/>
    </Match>
    <Match>
        <Class name="com.sun.ejb.InvocationInfo"/>
        <Field name="targetMethod2"/>
        <Bug pattern="UWF_NULL_FIELD"/>
    </Match>
    <Match>
        <Class name="com.sun.ejb.InvocationInfo"/>
        <Field name="isHomeFinder"/>
        <Bug pattern="UWF_UNWRITTEN_PUBLIC_OR_PROTECTED_FIELD"/>
    </Match>

    <Match>
        <Class name="org.glassfish.ejb.deployment.descriptor.IASEjbCMPEntityDescriptor"/>
        <Field name="finders"/>
        <Bug pattern="SE_TRANSIENT_FIELD_NOT_RESTORED"/>
    </Match>
</FindBugsFilter>
