<!--

    Copyright (c) 2014, 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,
    or the Eclipse Distribution License v. 1.0 which is available at
    http://www.eclipse.org/org/documents/edl-v10.php.

    SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause

-->

<FindBugsFilter>

    <!--
        These are hard to fix, require more robust and complete solution - excluded temporarily.
    -->
    <Match>
        <Bug pattern="DM_DEFAULT_ENCODING"/>
    </Match>

    <!--
        Hard to change without breaking backw. compatibility unnecessarily.
    -->
    <Match>
        <Bug pattern="NM_SAME_SIMPLE_NAME_AS_SUPERCLASS"/>
    </Match>

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

    <!--
        Antlr generated parser
    -->
    <Match>
        <Package name="~org.eclipse.persistence.internal.jpa.parsing.jpql.antlr.*" />
    </Match>

    <!--
        As designed, minor issue, unimportant code
    -->
    <Match>
        <Or>
            <Class name="org.eclipse.persistence.internal.eis.cobol.helper.ByteConverter"/>
        </Or>
        <Bug pattern="ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD"/>
    </Match>

    <!--
        Serialization in these classes is broken in a big way already, does not make sense
        to care about serialization warnings there.
    -->
    <Match>
        <Or>
            <Class name="org.eclipse.persistence.descriptors.ClassDescriptor"/>
            <Class name="org.eclipse.persistence.descriptors.DescriptorEventManager"/>
            <Class name="org.eclipse.persistence.descriptors.InheritancePolicy"/>
            <Class name="org.eclipse.persistence.descriptors.ReturningPolicy"/>
            <Class name="org.eclipse.persistence.internal.queries.JoinedAttributeManager"/>
            <Class name="org.eclipse.persistence.oxm.mappings.XMLCompositeDirectCollectionMapping"/>
        </Or>
        <Or>
            <Bug pattern="SE_BAD_FIELD"/>
            <Bug pattern="SE_BAD_FIELD_STORE"/>
            <Bug pattern="SE_TRANSIENT_FIELD_NOT_RESTORED"/>
        </Or>
    </Match>

    <!--
        Unfortunate, but it is not safe to make these public static fields final now.
        Should make them final in 3.0 and replace with proper apis if needed.
    -->
    <Match>
        <Or>
            <Class name="org.eclipse.persistence.internal.helper.DeferredLockManager"/>
            <Class name="org.eclipse.persistence.internal.sessions.MergeManager"/>
            <Class name="org.eclipse.persistence.tools.schemaframework.SchemaManager"/>
            <Class name="org.eclipse.persistence.tools.schemaframework.TableCreator"/>
            <Class name="org.eclipse.persistence.internal.sessions.ObjectChangeSet"/>
            <Class name="org.eclipse.persistence.internal.sessions.coordination.jms.JMSTopicRemoteConnection"/>
            <Class name="org.eclipse.persistence.internal.helper.WriteLockManager"/>
            <Class name="org.eclipse.persistence.jpa.rs.service.JPARSPersistenceContextFactoryProvider"/>
        </Or>
        <Bug pattern="MS_SHOULD_BE_FINAL"/>
    </Match>

    <Match>
        <Or>
            <Class name="org.eclipse.persistence.services.ClassSummaryDetailBase"/>
        </Or>
        <Bug pattern="MS_SHOULD_BE_REFACTORED_TO_BE_FINAL"/>
    </Match>

    <Match>
        <Class name="org.eclipse.persistence.sdo.SDOConstants"/>
        <Bug pattern="MS_MUTABLE_ARRAY"/>
    </Match>

    <Match>
        <Class name="org.eclipse.persistence.jaxb.compiler.CompilerHelper"/>
        <or>
            <Field name="ACCESSOR_FACTORY_ANNOTATION_CLASS"/>
            <Field name="ACCESSOR_FACTORY_VALUE_METHOD"/>
            <Field name="INTERNAL_ACCESSOR_FACTORY_ANNOTATION_CLASS"/>
            <Field name="INTERNAL_ACCESSOR_FACTORY_VALUE_METHOD"/>
            <Field name="XML_LOCATION_ANNOTATION_CLASS"/>
            <Field name="INTERNAL_XML_LOCATION_ANNOTATION_CLASS"/>
        </or>
        <Bug pattern="MS_SHOULD_BE_REFACTORED_TO_BE_FINAL"/>
    </Match>

    <Match>
        <Class name="org.eclipse.persistence.internal.oxm.XMLMarshaller"/>
        <Or>
            <Field name="staxResultClass"/>
            <Field name="staxResultGetStreamWriterMethod"/>
            <Field name="staxResultGetEventWriterMethod"/>
            <Field name="domToStreamWriterClass"/>
            <Field name="writeToStreamMethod"/>
            <Field name="domToEventWriterClass"/>
            <Field name="writeToEventWriterMethod"/>
        </Or>
        <Bug pattern="MS_SHOULD_BE_FINAL"/>
    </Match>
    <Match>
        <Class name="org.eclipse.persistence.internal.jpa.metadata.accessors.objects.MetadataFactory"/>
        <Field name="ALLOW_JDK"/>
        <Bug pattern="MS_SHOULD_BE_FINAL"/>
    </Match>

    <Match>
        <Class name="org.eclipse.persistence.internal.jpa.transaction.TransactionImpl"/>
        <Field name="DUMP_AFTER_COMPLETION_ERRORS"/>
        <Bug pattern="MS_SHOULD_BE_FINAL"/>
    </Match>

    <Match>
        <Class name="org.eclipse.persistence.internal.jpa.weaving.ClassWeaver"/>
        <Field name="isJAXBOnPath"/>
        <Bug pattern="MS_SHOULD_BE_FINAL"/>
    </Match>

    <Match>
        <Class name="org.eclipse.persistence.tools.dbws.XRPackager"/>
        <Field name="__nullStream"/>
        <Bug pattern="MS_SHOULD_BE_FINAL"/>
    </Match>

    <!--
        Adding a serialVersionUID field to public classes
        would be backward incompatible change.
        Many classes within internal packages are used outside as well.
        Should fix this in 3.0.
    -->
    <Match>
        <Bug pattern="SE_NO_SERIALVERSIONID"/>
    </Match>

    <!--
        Would be backwards compatible change, there's also typo in the field name. Fix with 3.0.
    -->
    <Match>
        <Class name="org.eclipse.persistence.logging.SessionLog"/>
        <Field name="loggerCatagories"/>
        <Bug pattern="MS_MUTABLE_ARRAY"/>
    </Match>

    <Match>
        <Class name="org.eclipse.persistence.internal.xr.Util"/>
        <Field name="META_INF_PATHS"/>
        <Bug pattern="MS_MUTABLE_ARRAY"/>
    </Match>

    <!--
        Would be backw. incompatible change. Fix in 3.0
    -->
    <Match>
        <Or>
            <And>
                <Class name="org.eclipse.persistence.Version"/>
                <Field name="JDK_VERSION"/>
            </And>
            <And>
                <Class name="org.eclipse.persistence.eis.EISDOMRecord"/>
                <Field name="domMethod"/>
            </And>
            <And>
                <Class name="org.eclipse.persistence.exceptions.EclipseLinkException"/>
                <Field name="shouldPrintInternalException"/>
            </And>
            <And>
                <Class name="org.eclipse.persistence.expressions.ExpressionOperator"/>
                <Field name="allOperators"/>
            </And>
            <And>
                <Class name="org.eclipse.persistence.internal.core.helper.CoreHelper"/>
                <Field name="CR"/>
            </And>
            <And>
                <Class name="org.eclipse.persistence.internal.helper.ConcurrencyManager"/>
                <Field name="shouldTrackStack"/>
            </And>
            <And>
                <Class name="org.eclipse.persistence.internal.helper.ConversionManager"/>
                <Field name="defaultManager"/>
            </And>
            <And>
                <Class name="org.eclipse.persistence.internal.helper.Helper"/>
                <Or>
                    <Field name="CR"/>
                    <Field name="PATH_SEPARATOR"/>
                    <Field name="FILE_SEPARATOR"/>
                    <Field name="CURRENT_WORKING_DIRECTORY"/>
                    <Field name="TEMP_DIRECTORY"/>
                </Or>
            </And>
            <And>
                <Class name="org.eclipse.persistence.internal.helper.JavaPlatform"/>
                <Field name="platform"/>
            </And>
            <And>
                <Class name="org.eclipse.persistence.internal.indirection.TransparentIndirectionPolicy"/>
                <Field name="defaultContainerSize"/>
            </And>
            <And>
                <Class name="org.eclipse.persistence.internal.oxm.XMLBinaryDataHelper"/>
                <Field name="binaryDataHelper"/>
            </And>
            <And>
                <Class name="org.eclipse.persistence.internal.oxm.XMLConversionManager"/>
                <Or>
                    <Field name="defaultJavaTypes"/>
                    <Field name="defaultXMLManager"/>
                    <Field name="defaultXMLTypes"/>
                </Or>
            </And>
            <And>
                <Class name="org.eclipse.persistence.internal.oxm.schema.SchemaModelGenerator"/>
                <Field name="SWAREF_LOCATION"/>
            </And>
            <And>
                <Class name="org.eclipse.persistence.internal.queries.ContainerPolicy"/>
                <Field name="defaultContainerClass"/>
            </And>
            <And>
                <Class name="org.eclipse.persistence.internal.sessions.UnitOfWorkImpl"/>
                <Field name="SmartMerge"/>
            </And>
            <And>
                <Class name="org.eclipse.persistence.logging.AbstractSessionLog"/>
                <Or>
                    <Field name="defaultLog"/>
                    <Field name="SEVERE_PREFIX"/>
                    <Field name="WARNING_PREFIX"/>
                    <Field name="INFO_PREFIX"/>
                    <Field name="CONFIG_PREFIX"/>
                    <Field name="FINE_PREFIX"/>
                    <Field name="FINER_PREFIX"/>
                    <Field name="FINEST_PREFIX"/>
                    <Field name="TOPLINK_PREFIX"/>
                </Or>
            </And>
            <And>
                <Class name="org.eclipse.persistence.oxm.record.OutputStreamRecord"/>
                <Field name="OPEN_XML_PI_AND_VERSION_ATTRIBUTE"/>
            </And>
            <And>
                <Class name="org.eclipse.persistence.oxm.record.OutputStreamRecord"/>
                <Or>
                    <Field name="OPEN_ENCODING_ATTRIBUTE"/>
                    <Field name="CLOSE_PI"/>
                    <Field name="OPEN_CDATA"/>
                    <Field name="CLOSE_CDATA"/>
                    <Field name="OPEN_COMMENT"/>
                    <Field name="CLOSE_COMMENT"/>
                    <Field name="AMP"/>
                    <Field name="LT"/>
                    <Field name="QUOT"/>
                    <Field name="ENCODING"/>
                    <Field name="SLASH_N"/>
                    <Field name="SLASH_R"/>
                </Or>
            </And>
            <And>
                <Class name="org.eclipse.persistence.platform.database.OraclePlatform"/>
                <Field name="vpdSetIdentifierQuery"/>
            </And>
            <And>
                <Class name="org.eclipse.persistence.platform.database.OraclePlatform"/>
                <Field name="vpdClearIdentifierQuery"/>
            </And>
            <And>
                <Class name="org.eclipse.persistence.services.ClassSummaryDetailBase"/>
                <Field name="itemNames_"/>
            </And>
            <And>
                <Class name="org.eclipse.persistence.sessions.DatasourceLogin"/>
                <Field name="versionString"/>
            </And>
            <And>
                <Class name="org.eclipse.persistence.sessions.factories.SessionManager"/>
                <Field name="shouldUseSchemaValidation"/>
            </And>
            <And>
                <Class name="org.eclipse.persistence.sessions.factories.XMLProjectReader"/>
                <Field name="project"/>
            </And>
            <And>
                <Class name="org.eclipse.persistence.sessions.factories.XMLProjectReader"/>
                <Field name="shouldUseSchemaValidation"/>
            </And>
            <And>
                <Class name="org.eclipse.persistence.tools.profiler.FetchGroupMonitor"/>
                <Field name="shouldMonitor"/>
            </And>
            <And>
                <Class name="org.eclipse.persistence.tools.profiler.QueryMonitor"/>
                <Field name="shouldMonitor"/>
            </And>
            <And>
                <Class name="org.eclipse.persistence.tools.profiler.QueryMonitor"/>
                <Field name="dumpTime"/>
            </And>
            <And>
                <Class name="org.eclipse.persistence.tools.schemaframework.PopulationManager"/>
                <Field name="defaultManager"/>
            </And>
            <And>
                <Class name="org.eclipse.persistence.transaction.JTATransactionController"/>
                <Field name="defaultTransactionManager"/>
            </And>
            <And>
                <Class name="org.eclipse.persistence.internal.eis.cobol.helper.ByteConverter"/>
                <Field name="wordSize"/>
            </And>
            <And>
                <Class name="org.eclipse.persistence.internal.jpa.EntityManagerFactoryProvider"/>
                <Field name="oldPropertyNames"/>
            </And>
            <And>
                <Class name="org.eclipse.persistence.internal.jpa.deployment.JavaSECMPInitializer"/>
                <Or>
                    <Field name="isInContainer"/>
                    <Field name="usesAgent"/>
                    <Field name="initializer"/>
                    <Field name="globalInstrumentation"/>
                    <Field name="isInitialized"/>
                </Or>
            </And>
            <And>
                <Class name="org.eclipse.persistence.internal.jpa.deployment.PersistenceUnitProcessor"/>
                <Field name="ARCHIVE_FACTORY"/>
            </And>
            <And>
                <Class name="org.eclipse.persistence.sdo.helper.XPathEngine"/>
                <Field name="defaultXPathEngine"/>
            </And>
        </Or>
        <Bug pattern="MS_PKGPROTECT"/>
    </Match>
    <Match>
        <Or>
            <And>
                <Class name="org.eclipse.persistence.expressions.ExpressionOperator"/>
                <Method name="setArgumentIndices"/>
            </And>
            <And>
                <Class name="org.eclipse.persistence.expressions.ListExpressionOperator"/>
                <Or>
                    <Method name="setStartStrings"/>
                    <Method name="setSeparators"/>
                    <Method name="setTerminationStrings"/>
                </Or>
            </And>
            <And>
                <Class name="org.eclipse.persistence.expressions.spatial.SpatialParameters"/>
                <Method name="setMasks"/>
            </And>
            <And>
                <Class name="org.eclipse.persistence.internal.identitymaps.CacheId"/>
                <Method name="&lt;init&gt;"/>
            </And>
            <And>
                <Class name="org.eclipse.persistence.internal.identitymaps.CacheId"/>
                <Method name="setPrimaryKey"/>
            </And>
            <And>
                <Class name="org.eclipse.persistence.internal.indirection.CacheBasedValueHolder"/>
                <Method name="&lt;init&gt;"/>
            </And>
            <And>
                <Class name="org.eclipse.persistence.internal.indirection.ProxyIndirectionPolicy"/>
                <Method name="&lt;init&gt;"/>
            </And>
            <And>
                <Class name="org.eclipse.persistence.internal.oxm.ByteArrayDataSource"/>
                <Method name="&lt;init&gt;"/>
            </And>
            <And>
                <Class name="org.eclipse.persistence.internal.oxm.XMLBinaryDataHelper$EncodedData"/>
                <Method name="&lt;init&gt;"/>
            </And>
            <And>
                <Class name="org.eclipse.persistence.internal.oxm.XMLBinaryDataHelper$EncodedData"/>
                <Method name="setData"/>
            </And>
            <And>
                <Class name="org.eclipse.persistence.expressions.ExpressionOperator"/>
                <Method name="setArgumentIndices"/>
            </And>
            <And>
                <Class name="org.eclipse.persistence.expressions.ExpressionOperator"/>
                <Method name="setArgumentIndices"/>
            </And>
            <And>
                <Class name="org.eclipse.persistence.expressions.ExpressionOperator"/>
                <Method name="setArgumentIndices"/>
            </And>
            <And>
                <Class name="org.eclipse.persistence.expressions.ExpressionOperator"/>
                <Method name="setArgumentIndices"/>
            </And>
            <And>
                <Class name="org.eclipse.persistence.expressions.ExpressionOperator"/>
                <Method name="setArgumentIndices"/>
            </And>
            <And>
                <Class name="org.eclipse.persistence.expressions.ExpressionOperator"/>
                <Method name="setArgumentIndices"/>
            </And>
            <And>
                <Class name="org.eclipse.persistence.expressions.ExpressionOperator"/>
                <Method name="setArgumentIndices"/>
            </And>
        </Or>
        <Bug pattern="NS_DANGEROUS_NON_SHORT_CIRCUIT"/>
    </Match>

    <!--
        As designed, not an error
    -->
    <Match>
        <Class name="org.eclipse.persistence.jpa.jpql.tools.AbstractContentAssistVisitor$AppendableExpressionVisitor"/>
        <Bug pattern="NS_DANGEROUS_NON_SHORT_CIRCUIT"/>
    </Match>

    <Match>
        <Or>
            <Class name="org.eclipse.persistence.internal.sessions.CommitManager"/>
            <Class name="org.eclipse.persistence.tools.schemaframework.StoredProcedureDefinition"/>
        </Or>
        <Bug pattern="RC_REF_COMPARISON_BAD_PRACTICE"/>
    </Match>

    <Match>
        <Or>
            <Class name="org.eclipse.persistence.jpa.jpql.tools.AbstractContentAssistVisitor$AppendableExpressionVisitor"/>
            <Class name="org.eclipse.persistence.jpa.jpql.tools.DefaultContentAssistProposals"/>
            <Class name="org.eclipse.persistence.jpa.jpql.tools.EclipseLinkContentAssistVisitor$IncompleteCollectionExpressionVisitor"/>
            <Class name="org.eclipse.persistence.internal.oxm.record.DOMReader"/>
            <Class name="org.eclipse.persistence.internal.oxm.record.UnmarshalRecordImpl"/>
            <Class name="org.eclipse.persistence.mappings.AggregateCollectionMapping"/>
            <Class name="org.eclipse.persistence.oxm.record.ContentHandlerRecord"/>
            <Class name="org.eclipse.persistence.queries.ObjectLevelReadQuery"/>
            <Class name="org.eclipse.persistence.tools.schemaframework.StoredProcedureDefinition"/>
            <Class name="org.eclipse.persistence.sdo.helper.SDODataHelper"/>
        </Or>
        <Bug pattern="ES_COMPARING_PARAMETER_STRING_WITH_EQ"/>
    </Match>

    <Match>
        <!-- custom logic in equals -->
        <Or>
            <Class name="org.eclipse.persistence.internal.jpa.metadata.accessors.objects.MetadataClass"/>
            <Class name="org.eclipse.persistence.internal.jpa.querydef.ParameterExpressionImpl"/>
        </Or>
        <Bug pattern="EQ_CHECK_FOR_OPERAND_NOT_COMPATIBLE_WITH_THIS"/>
    </Match>

    <Match>
        <Or>
            <Class name="org.eclipse.persistence.jpa.jpql.tools.model.query.AbstractStateObject"/>
        </Or>
        <Bug pattern="NP_NONNULL_PARAM_VIOLATION"/>
        <Bug pattern="NP_NULL_PARAM_DEREF_NONVIRTUAL"/>
    </Match>

    <Match>
        <Or>
            <Class name="org.eclipse.persistence.internal.oxm.XMLConversionManager"/>
            <Class name="org.eclipse.persistence.platform.server.JMXServerPlatformBase"/>
            <Class name="org.eclipse.persistence.services.ClassSummaryDetailBase"/>
        </Or>
        <Bug pattern="MS_SHOULD_BE_FINAL"/>
    </Match>

    <Match>
        <Class name="org.eclipse.persistence.expressions.ExpressionBuilder"/>
        <Method name="registerIn"/>
        <Bug pattern="DMI_COLLECTIONS_SHOULD_NOT_CONTAIN_THEMSELVES"/>
    </Match>

    <Match>
        <!-- to be overridden in subclasses -->
        <Class name="org.eclipse.persistence.services.RuntimeServices"/>
        <Field name="PLATFORM_NAME"/>
        <Bug pattern="MS_SHOULD_BE_FINAL"/>
    </Match>

    <Match>
        <Or>
            <Class name="org.eclipse.persistence.jpa.jpql.tools.model.query.AbstractStateObject$1"/>
        </Or>
        <Bug pattern="UMAC_UNCALLABLE_METHOD_OF_ANONYMOUS_CLASS"/>
    </Match>

    <Match>
        <Class name="org.eclipse.persistence.dynamic.DynamicClassLoader"/>
        <Method name="findClass"/>
        <Bug pattern="NP_NULL_PARAM_DEREF"/>
    </Match>

    <Match>
        <Class name="org.eclipse.persistence.mappings.CollectionMapping"/>
        <Method name="shouldUseLazyInstantiationForIndirectCollection"/>
        <Bug pattern="NP_BOOLEAN_RETURN_NULL"/>
    </Match>

    <Match>
        <Class name="org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl"/>
        <Method name="isLoaded"/>
        <Bug pattern="NP_BOOLEAN_RETURN_NULL"/>
    </Match>

    <Match>
        <Class name="org.eclipse.persistence.internal.jpa.EntityManagerImpl"/>
        <Method name="isPropertyValueToBeUpdated"/>
        <Bug pattern="NP_BOOLEAN_RETURN_NULL"/>
    </Match>

    <Match>
        <Class name="org.eclipse.persistence.internal.jpa.querydef.PredicateImpl"/>
        <Method name="getJunctionValue"/>
        <Bug pattern="NP_BOOLEAN_RETURN_NULL"/>
    </Match>

    <Match>
        <!-- comparing jar file urls -->
        <Class name="org.eclipse.persistence.internal.jpa.metadata.MetadataProcessor"/>
        <Method name="loadStandardMappingFiles"/>
        <Bug pattern="DMI_COLLECTION_OF_URLS"/>
    </Match>

    <Match>
        <Class name="org.eclipse.persistence.internal.jpa.EntityManagerFactoryProvider"/>
        <Field name="emSetupImpls"/>
        <Bug pattern="MS_MUTABLE_COLLECTION"/>
    </Match>

    <Match>
        <Class name="org.eclipse.persistence.tools.weaving.jpa.StaticWeave"/>
        <Method name="processCommandLine"/>
        <Bug pattern="DM_EXIT"/>
    </Match>

    <Match>
        <Or>
            <!-- applies to LinkedHasMap.Entry<K, V>.before/after fields -->
            <Class name="org.eclipse.persistence.jaxb.plugins.BeanValidationPlugin$RegexMutator$1"/>
            <Class name="org.eclipse.persistence.jaxb.plugins.BeanValidationPlugin$RegexMutator$2"/>
        </Or>
        <Bug pattern="SE_BAD_FIELD"/>
    </Match>

    <Match>
        <!-- This is safe since the real barrier is "private static volatile boolean firstTime = true;" -->
        <Class name="org.eclipse.persistence.internal.jpa.metadata.beanvalidation.ValidationXMLReader"/>
        <Method name="call"/>
        <Bug pattern="ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD"/>
    </Match>

    <Match>
        <!-- as designed -->
        <Class name="_dbws.ProviderListener"/>
        <Method name="contextInitialized"/>
        <Bug pattern="ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD"/>
    </Match>

    <!-- Cloneable warnings -->
    <Match>
        <Or>
            <!-- clones by constructor -->
            <Class name="org.eclipse.persistence.descriptors.PessimisticLockingPolicy"/>
            <Class name="org.eclipse.persistence.internal.helper.NonSynchronizedProperties"/>
            <Class name="org.eclipse.persistence.internal.helper.NonSynchronizedVector"/>
            <Class name="org.eclipse.persistence.internal.jpa.CMP3Policy"/>
            <Class name="org.eclipse.persistence.internal.oxm.XMLUnmarshaller"/>
            <Class name="org.eclipse.persistence.internal.sessions.EmptyRecord"/>
            <Class name="org.eclipse.persistence.oxm.XMLMarshaller"/>
            <Class name="org.eclipse.persistence.oxm.XMLUnmarshaller"/>
            <Class name="org.eclipse.persistence.sdo.helper.ListWrapper"/>
            <Class name="org.eclipse.persistence.sessions.interceptors.CacheKeyInterceptor"/>
            <!-- optimized cloning -->
            <Class name="org.eclipse.persistence.core.queries.CoreAttributeGroup"/>
        </Or>
        <Bug pattern="CN_IDIOM_NO_SUPER_CALL"/>
    </Match>

    <Match>
        <Or>
            <!-- clones by constructor -->
            <Class name="org.eclipse.persistence.internal.jpa.metadata.mappings.AccessMethodsMetadata"/>
        </Or>
        <Bug pattern="CN_IMPLEMENTS_CLONE_BUT_NOT_CLONEABLE"/>
    </Match>
    <!-- End of Cloneable warnings -->

    <!--
        JPQL (Hermes) Parser "by design" warnings
    -->
    <Match>
        <Package name="~org.eclipse.persistence.jpa.jpql.*" />
        <Bug pattern="ES_COMPARING_STRINGS_WITH_EQ"/>
    </Match>

    <Match>
        <!-- defined in javadoc -->
        <Class name="org.eclipse.persistence.jpa.jpql.WordParser"/>
        <Method name="startsWithDigit"/>
        <Bug pattern="NP_BOOLEAN_RETURN_NULL"/>
    </Match>

    <Match>
        <!-- works with WordParser.startsWithDigit -->
        <Class name="org.eclipse.persistence.jpa.jpql.parser.ArithmeticExpressionFactory"/>
        <Method name="buildExpression"/>
        <Bug pattern="RC_REF_COMPARISON_BAD_PRACTICE_BOOLEAN"/>
    </Match>

    <Match>
        <!-- defined in javadoc -->
        <Class name="org.eclipse.persistence.jpa.jpql.AbstractSemanticValidator"/>
        <Method name="validateThirdPartyStateFieldPathExpression"/>
        <Bug pattern="NP_BOOLEAN_RETURN_NULL"/>
    </Match>

    <Match>
        <Class name="org.eclipse.persistence.jpa.jpql.tools.AbstractContentAssistVisitor"/>
        <Method name="isCompoundFunction"/>
        <Bug pattern="ES_COMPARING_PARAMETER_STRING_WITH_EQ"/>
    </Match>

    <Match>
        <Class name="org.eclipse.persistence.jpa.jpql.tools.resolver.DeclarationResolver"/>
        <Method name="isCollectionIdentificationVariableImp"/>
        <Or>
            <!-- false positive: case statement does not contain 'break;' -->
            <Bug pattern="SF_SWITCH_NO_DEFAULT"/>
            <!-- check for return value from the method
                 which can be overwridden in a subclass   -->
            <Bug pattern="RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE"/>
        </Or>
    </Match>

</FindBugsFilter>
