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

<FindBugsFilter
  xmlns="https://github.com/spotbugs/filter/3.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="https://github.com/spotbugs/filter/3.0.0 https://raw.githubusercontent.com/spotbugs/spotbugs/4.8.3/spotbugs/etc/findbugsfilter.xsd">
  <!-- General exclusion rules -->
  <Match>
    <!-- exclude 3rd party classes and generated code -->
    <Or>
      <Class name="~org\.apache\.ignite\.example\..*" />
      <Class name="~org\.apache\.ignite\.raft\.jraft\..*" />
      <Class name="~com\.facebook\.presto\..*" />
      <Class name="~org\.apache\.ignite\.internal\.generated\..*"/>
      <Class name="~org\.apache\.ignite\.rest\.client\..*"/>
      <Annotation name="org.immutables.value.Generated" />
    </Or>
  </Match>
  <Match>
    <!-- disabled rules -->
    <Or>
      <!-- Disabled because it's already checked by PMD -->
      <Bug pattern="EQ_DOESNT_OVERRIDE_EQUALS"/>
      <!-- TODO: non-standard equals definition, is it a crime? -->
      <Bug pattern="EQ_UNUSUAL"/>
      <!-- This rule has way too many false positives -->
      <Bug pattern="NP_PARAMETER_MUST_BE_NONNULL_BUT_MARKED_AS_NULLABLE"/>
      <!-- TODO: There are many places where we reference variables which we know to be null, which is a dangerous practice.
           Currently there is no real associated problems with this, but we should consider to don't do that. -->
      <Bug pattern="NP_LOAD_OF_KNOWN_NULL_VALUE"/>
      <!-- Those rules generate a huge amount of noise
           because they report every exposed array/mutable object you receive as input or return in getter -->
      <Bug code="EI,EI2" />
      <!-- our codebase has a lot of cases with intentional switch-fallthrough so we disable related rules -->
      <Bug code="SF"/>
      <!-- we don't use Serializable so there is no reason to check bugs related to it -->
      <Bug code="Se"/>
      <!-- we exclude this rule because we often compare boxed booleans by reference, which is ok-ish -->
      <Bug pattern="RC_REF_COMPARISON_BAD_PRACTICE_BOOLEAN"/>
      <!-- we specifically catch even not thrown exceptions is some places to be extra defendant -->
      <Bug pattern="REC_CATCH_EXCEPTION"/>
    </Or>
  </Match>
  <Match>
    <!-- in configuration Schema classes we ignore unread fields -->
    <Bug code="SS,UrF"/>
    <Or>
      <Annotation name="org.apache.ignite.configuration.annotation.ConfigurationRoot"/>
      <Annotation name="org.apache.ignite.configuration.annotation.Config"/>
      <Annotation name="org.apache.ignite.configuration.annotation.PolymorphicConfig"/>
      <Annotation name="org.apache.ignite.configuration.annotation.AbstractConfiguration"/>
    </Or>
  </Match>

  <!-- false-positives exclusions -->
  <Match>
    <Bug pattern="MS_EXPOSE_REP"/>
    <Or>
      <And>
        <Class name="org.apache.ignite.internal.util.CompletableFutures"/>
        <Or>
          <Method name="nullCompletedFuture"/>
          <Method name="trueCompletedFuture"/>
          <Method name="falseCompletedFuture"/>
        </Or>
      </And>
      <And>
        <Class name="org.apache.ignite.internal.util.IgniteUtils"/>
        <Method name="igniteClassLoader"/>
      </And>
      <And>
        <Class name="org.apache.ignite.internal.schema.mapping.ColumnMapping"/>
        <Method name="identityMapping"/>
      </And>
    </Or>
  </Match>
  <Match>
    <!-- updates cached state, uses putIfAbsent -->
    <Bug pattern="RV_RETURN_VALUE_OF_PUTIFABSENT_IGNORED"/>
    <Class name="org.apache.ignite.internal.schema.registry.SchemaRegistryImpl"/>
    <Method name="makeSchemaVersionAvailable"/>
  </Match>
  <Match>
    <Bug pattern="RV_RETURN_VALUE_IGNORED_BAD_PRACTICE"/>
    <Or>
      <And>
        <!-- the flow is organized such that there is not much value to check returns -->
        <Class name="org.apache.ignite.internal.cli.config.StateConfig"/>
        <Method name="createDefaultConfig"/>
      </And>
      <And>
        <Class name="org.apache.ignite.internal.cli.config.ini.IniConfigManager"/>
        <Or>
          <!-- the flow is organized such that there is not much value to check returns -->
          <Method name="createDefaultConfig"/>
          <Method name="createDefaultSecretConfig"/>
        </Or>
      </And>
    </Or>
  </Match>
  <Match>
    <!-- this method has side effects -->
    <Bug pattern="RV_RETURN_VALUE_IGNORED_NO_SIDE_EFFECT"/>
    <Or>
      <Class name="org.apache.ignite.internal.client.table.AbstractClientView"/>
      <Class name="org.apache.ignite.client.handler.requests.sql.ClientSqlCommon"/>
    </Or>
  </Match>
  <Match>
    <Bug pattern="MS_PKGPROTECT"/>
    <Or>
      <And>
        <Class name="org.apache.ignite.internal.client.proto.ClientMessageCommon"/>
        <Field name="MAGIC_BYTES"/>
      </And>
      <And>
        <Class name="org.apache.ignite.internal.cluster.management.topology.LogicalTopologyImpl"/>
        <Field name="LOGICAL_TOPOLOGY_KEY"/>
      </And>
    </Or>
  </Match>
  <Match>
    <Bug pattern="EI_EXPOSE_STATIC_REP2"/>
    <Class name="org.apache.ignite.internal.cli.logger.CliLoggers"/>
    <Method name="startOutputRedirect"/>
  </Match>
  <Match>
    <!-- casts types by contract based on enum value -->
    <Bug pattern="BC_UNCONFIRMED_CAST"/>
    <Class name="org.apache.ignite.internal.sql.engine.util.Commons"/>
    <Or>
      <Method name="nativeTypePrecision"/>
      <Method name="nativeTypeScale"/>
      <Method name="readValue"/>
    </Or>
  </Match>
  <Match>
    <!-- this class have specific implementation by design -->
    <Bug pattern="EQ_COMPARETO_USE_OBJECT_EQUALS"/>
    <Source name="Version.java"/>
  </Match>
  <Match>
    <!-- Trusted cast based on a method contract -->
    <Bug pattern="BC_BAD_CAST_TO_ABSTRACT_COLLECTION"/>
    <Class name="org.apache.ignite.internal.network.serialization.marshal.BuiltInContainerMarshallers"/>
    <Method name="writeBuiltInCollection"/>
  </Match>
  <Match>
    <!-- casts types by contract based on enum value -->
    <Bug pattern="BC_UNCONFIRMED_CAST"/>
    <Class name="org.apache.ignite.internal.util.ColocationUtils"/>
    <Method name="append"/>
  </Match>
  <Match>
    <!-- casts types by contract based on enum value -->
    <Bug pattern="BC_UNCONFIRMED_CAST"/>
    <Source name="BinaryTupleSchema.java"/>
  </Match>
  <Match>
    <!-- consumes buffer data -->
    <Bug pattern="DLS_DEAD_LOCAL_STORE"/>
    <Class name="org.apache.ignite.internal.client.proto.ClientMessageUnpacker"/>
    <Method name="unpackObjectArrayFromBinaryTupleArray"/>
  </Match>
  <Match>
    <Bug pattern="INT_BAD_COMPARISON_WITH_NONNEGATIVE_VALUE"/>
    <Source name="DistributionZoneRebalanceEngine.java"/>
  </Match>
  <Match>
    <!-- wait/notify condition is atomic, so there is n need to put it into synchronized block for performance reasons -->
    <Bug pattern="NN_NAKED_NOTIFY"/>
    <Class name="org.apache.ignite.internal.pagememory.persistence.checkpoint.Checkpointer"/>
    <Method name="cancel"/>
  </Match>
  <Match>
    <!-- duplicate reported because constants have same value -->
    <Bug pattern="DB_DUPLICATE_BRANCHES"/>
    <Source name="AbstractPageMemoryIndexStorage.java"/>
  </Match>
  <Match>
    <!-- suppressed in code as well -->
    <Bug pattern="VO_VOLATILE_INCREMENT"/>
    <Class name="org.apache.ignite.internal.tx.impl.TransactionInflights$TxContext"/>
    <Field name="inflights"/>
  </Match>
  <Match>
    <!-- suppressed in code as well -->
    <Bug pattern="VO_VOLATILE_DECREMENT"/>
    <Class name="org.apache.ignite.internal.tx.impl.TransactionInflights$TxContext"/>
    <Field name="inflights"/>
  </Match>
  <Match>
    <!-- Public byte array constants, not expected to be modified. -->
    <Bug pattern="MS_MUTABLE_ARRAY"/>
    <Class name="org.apache.ignite.internal.storage.rocksdb.RocksDbMetaStorage"/>
    <Or>
      <Field name="PARTITION_META_PREFIX"/>
      <Field name="PARTITION_CONF_PREFIX"/>
      <Field name="INDEX_ROW_ID_PREFIX"/>
      <Field name="LEASE_PREFIX"/>
    </Or>
  </Match>
  <Match>
    <Bug pattern="IT_NO_SUCH_ELEMENT"/>
    <Class name="org.apache.ignite.internal.storage.pagememory.index.sorted.PageMemorySortedIndexStorage$ReadOnlyScanCursor"/>
    <Method name="next"/>
  </Match>
  <!-- end of false-positive exclusions -->



  <!-- the list of potential bugs which has to be investigated -->
  <Match>
    <!-- TODO: https://issues.apache.org/jira/browse/IGNITE-16350 -->
    <Bug pattern="MS_SHOULD_BE_FINAL"/>
    <Class name="org.apache.ignite.internal.pagememory.datastructure.DataStructure"/>
    <Field name="rnd"/>
  </Match>
  <Match>
    <!-- TODO: https://issues.apache.org/jira/browse/IGNITE-21690 -->
    <Bug pattern="IS2_INCONSISTENT_SYNC"/>
    <Class name="org.apache.ignite.internal.configuration.ConfigurationNode"/>
    <Or>
      <Field name="invalid"/>
      <Field name="val"/>
    </Or>
  </Match>
  <Match>
    <!-- TODO: https://issues.apache.org/jira/browse/IGNITE-21691 -->
    <Bug pattern="IS2_INCONSISTENT_SYNC"/>
    <Class name="org.apache.ignite.internal.metrics.exporters.BasicMetricExporter"/>
    <Field name="configuration"/>
  </Match>
  <Match>
    <!-- TODO: https://issues.apache.org/jira/browse/IGNITE-21692 -->
    <Bug pattern="UPM_UNCALLED_PRIVATE_METHOD"/>
    <Class name="org.apache.ignite.internal.pagememory.freelist.AbstractFreeList"/>
    <Method name="initReusedPage"/>
  </Match>
  <Match>
    <!-- TODO: https://issues.apache.org/jira/browse/IGNITE-21694 -->
    <Bug pattern="WMI_WRONG_MAP_ITERATOR"/>
    <Source name="HeapLockManager.java"/>
  </Match>
  <Match>
    <!-- TODO: https://issues.apache.org/jira/browse/IGNITE-21694 -->
    <Bug pattern="WMI_WRONG_MAP_ITERATOR"/>
    <Source name="HeapUnboundedLockManager.java"/>
  </Match>
  <Match>
    <!-- TODO: https://issues.apache.org/jira/browse/IGNITE-21695 -->
    <Bug pattern="UCF_USELESS_CONTROL_FLOW"/>
    <Class name="org.apache.ignite.internal.pagememory.util.PageHandler"/>
  </Match>
  <Match>
    <!-- TODO: https://issues.apache.org/jira/browse/IGNITE-21698 -->
    <Bug pattern="BX_UNBOXING_IMMEDIATELY_REBOXED"/>
    <Source name="LocalConfigurationStorage.java"/>
  </Match>
  <Match>
    <!-- TODO: https://issues.apache.org/jira/browse/IGNITE-21699 -->
    <Bug pattern="ES_COMPARING_STRINGS_WITH_EQ"/>
    <Class name="org.apache.ignite.internal.sql.engine.trait.DistributionFunction"/>
    <Or>
      <Method name="equals"/>
      <Method name="satisfy"/>
    </Or>
  </Match>
  <Match>
    <!-- TODO: https://issues.apache.org/jira/browse/IGNITE-21701 -->
    <Bug pattern="EC_UNRELATED_TYPES_USING_POINTER_EQUALITY"/>
    <Class name="org.apache.ignite.internal.sql.engine.rel.IgniteSender"/>
  </Match>
  <Match>
    <!-- TODO: https://issues.apache.org/jira/browse/IGNITE-21702 -->
    <Bug pattern="SS_SHOULD_BE_STATIC"/>
    <Class name="org.apache.ignite.internal.sql.engine.exec.rel.AbstractNode"/>
    <Field name="inBufSize"/>
  </Match>
  <Match>
    <!-- TODO: https://issues.apache.org/jira/browse/IGNITE-21703 -->
    <Bug pattern="DM_DEFAULT_ENCODING"/>
    <Class name="org.apache.ignite.internal.sql.engine.exec.exp.IgniteSqlFunctions"/>
    <Method name="octetLength"/>
  </Match>
  <Match>
    <!-- TODO: https://issues.apache.org/jira/browse/IGNITE-21704 -->
    <Bug pattern="BC_EQUALS_METHOD_SHOULD_WORK_FOR_ALL_OBJECTS"/>
    <Source name="ConfigurationListenerHolder.java"/>
  </Match>
  <Match>
    <!-- TODO: https://issues.apache.org/jira/browse/IGNITE-21704 -->
    <Bug pattern="NP_EQUALS_SHOULD_HANDLE_NULL_ARGUMENT"/>
    <Source name="ConfigurationListenerHolder.java"/>
  </Match>
  <Match>
    <!-- TODO: https://issues.apache.org/jira/browse/IGNITE-21705 -->
    <Bug pattern="BC_EQUALS_METHOD_SHOULD_WORK_FOR_ALL_OBJECTS"/>
    <Source name="CheckpointWorkflow.java"/>
  </Match>
  <Match>
    <!-- TODO: https://issues.apache.org/jira/browse/IGNITE-21705 -->
    <Bug pattern="NP_EQUALS_SHOULD_HANDLE_NULL_ARGUMENT"/>
    <Source name="CheckpointWorkflow.java"/>
  </Match>
  <Match>
    <!-- TODO: https://issues.apache.org/jira/browse/IGNITE-21706 -->
    <Bug pattern="UC_USELESS_CONDITION"/>
    <Class name="org.apache.ignite.internal.pagememory.persistence.replacement.RandomLruPageReplacementPolicy"/>
    <Method name="replace"/>
  </Match>
</FindBugsFilter>
