<commit_before><!--
   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>
  <!-- Ignore PB Generated Code -->
  <Match>
    <Package name="org.apache.hadoop.yarn.proto" />
  </Match>
  <Match>
    <Package name="org.apache.hadoop.yarn.federation.proto" />
  </Match>
  <Match>
    <Class name="~org\.apache\.hadoop\.yarn\.ipc\.RpcProtos.*" />
  </Match>

  <Match>
    <Class name="org.apache.hadoop.yarn.service.AbstractService" />
    <Bug pattern="JLM_JSR166_UTILCONCURRENT_MONITORENTER" />
  </Match>

  <!-- Ignore unchecked Event casts -->
  <Match>
    <Class name="org.apache.hadoop.yarn.server.nodemanager.containermanager.ContainerManagerImpl" />
    <Bug pattern="BC_UNCONFIRMED_CAST" />
  </Match>
  <Match>
    <Class name="~org\.apache\.hadoop\.yarn\.server\.nodemanager\.containermanager\.application\.ApplicationImpl.*" />
    <Bug pattern="BC_UNCONFIRMED_CAST" />
  </Match>
  <Match>
    <Class name="~org\.apache\.hadoop\.yarn\.server\.nodemanager\.containermanager\.container\.ContainerImpl.*" />
    <Bug pattern="BC_UNCONFIRMED_CAST" />
  </Match>
  <Match>
    <Class name="~org\.apache\.hadoop\.yarn\.server\.nodemanager\.containermanager\.localizer\.LocalizedResource.*" />
    <Bug pattern="BC_UNCONFIRMED_CAST" />
  </Match>
  <Match>
    <Class name="~org\.apache\.hadoop\.yarn\.server\.nodemanager\.containermanager\.localizer\.ResourceLocalizationService.*" />
    <Bug pattern="BC_UNCONFIRMED_CAST" />
  </Match>
  <Match>
    <Class name="org.apache.hadoop.yarn.server.nodemanager.containermanager.monitor.ContainersMonitorImpl" />
    <Bug pattern="BC_UNCONFIRMED_CAST" />
  </Match>
  <Match>
    <Class name="~org\.apache\.hadoop\.yarn\.server\.resourcemanager\.rmapp\.RMAppImpl.*" />
    <Bug pattern="BC_UNCONFIRMED_CAST" />
  </Match>
  <Match>
    <Class name="~org\.apache\.hadoop\.yarn\.server\.resourcemanager\.rmapp\.attempt\.RMAppAttemptImpl.*" />
    <Bug pattern="BC_UNCONFIRMED_CAST" />
  </Match>
  <Match>
    <Class name="org.apache.hadoop.yarn.server.resourcemanager.rmapp.attempt.RMAppAttemptMetrics" />
    <Method name="getLocalityStatistics" />
    <Bug pattern="EI_EXPOSE_REP" />
  </Match>
  <Match>
    <Class name="org.apache.hadoop.yarn.server.resourcemanager.rmapp.attempt.RMAppAttemptMetrics" />
    <Method name="incNumAllocatedContainers"/>
    <Bug pattern="VO_VOLATILE_INCREMENT" />
  </Match>
  <Match>
    <Class name="org.apache.hadoop.yarn.server.resourcemanager.rmapp.RMAppImpl$AppRejectedTransition" />
    <Bug pattern="BC_UNCONFIRMED_CAST" />
  </Match>
  <Match>
    <Class name="~org\.apache\.hadoop\.yarn\.server\.resourcemanager\.rmcontainer\.RMContainerImpl.*" />
    <Bug pattern="BC_UNCONFIRMED_CAST" />
  </Match>
  <Match>
    <Class name="~org\.apache\.hadoop\.yarn\.server\.resourcemanager\.rmnode\.RMNodeImpl.*" />
    <Bug pattern="BC_UNCONFIRMED_CAST" />
  </Match>
  <Match>
    <Class name="~org\.apache\.hadoop\.yarn\.server\.resourcemanager\.RMAppManager.*" />
    <Method name="handle" />
    <Bug pattern="BC_UNCONFIRMED_CAST" />
  </Match>
  <Match>
    <Class name="~org\.apache\.hadoop\.yarn\.server\.resourcemanager\.scheduler\.capacity\.CapacityScheduler.*" />
    <Method name="handle" />
    <Bug pattern="BC_UNCONFIRMED_CAST" />
  </Match>
  <Match>
    <Class name="~org\.apache\.hadoop\.yarn\.server\.resourcemanager\.scheduler\.fifo\.FifoScheduler.*" />
    <Method name="handle" />
    <Bug pattern="BC_UNCONFIRMED_CAST" />
  </Match>
  <Match>
    <Class name="~org\.apache\.hadoop\.yarn\.server\.nodemanager\.containermanager\.logaggregation\.LogAggregationService.*" />
    <Method name="handle" />
    <Bug pattern="BC_UNCONFIRMED_CAST" />
  </Match>
  <Match>
    <Class name="~org\.apache\.hadoop\.yarn\.server\.nodemanager\.containermanager\.loghandler\.NonAggregatingLogHandler.*" />
    <Method name="handle" />
    <Bug pattern="BC_UNCONFIRMED_CAST" />
  </Match>
  <Match>
    <Class name="org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainersLauncher" />
    <Method name="handle" />
    <Bug pattern="BC_UNCONFIRMED_CAST" />
  </Match>

  <!-- Object cast is based on the event type -->
  <Match>
    <Class name="org.apache.hadoop.yarn.server.nodemanager.timelineservice.NMTimelinePublisher" />
    <Method name="publishApplicationEvent" />
    <Bug pattern="BC_UNCONFIRMED_CAST" />
  </Match>

  <Match>
    <Class name="org.apache.hadoop.yarn.server.nodemanager.timelineservice.NMTimelinePublisher" />
    <Method name="publishLocalizationEvent" />
    <Bug pattern="BC_UNCONFIRMED_CAST" />
  </Match>

  <Match>
    <Class name="org.apache.hadoop.yarn.server.resourcemanager.metrics.TimelineServiceV2Publisher$TimelineV2EventHandler" />
     <Bug pattern="BC_UNCONFIRMED_CAST" />
  </Match>

  <!-- Ignore intentional switch fallthroughs -->
  <Match>
    <Class name="org.apache.hadoop.yarn.server.nodemanager.containermanager.container.ContainerImpl" />
    <Method name="finished" />
    <Bug pattern="SF_SWITCH_FALLTHROUGH" />
  </Match>
  <Match>
    <Class name="org.apache.hadoop.yarn.server.nodemanager.containermanager.localizer.ContainerLocalizer" />
    <Method name="localizeFiles" />
    <Bug pattern="SF_SWITCH_FALLTHROUGH" />
  </Match>

  <!-- Ignore some irrelevant serialization warnings -->
  <Match>
    <Class name="org.apache.hadoop.yarn.server.nodemanager.containermanager.localizer.ResourceRetentionSet$LRUComparator" />
    <Bug pattern="SE_COMPARATOR_SHOULD_BE_SERIALIZABLE" />
  </Match>
  <Match>
    <Class name="org.apache.hadoop.yarn.client.api.impl.AMRMClientImpl$ProfileCapabilityComparator" />
    <Bug pattern="SE_COMPARATOR_SHOULD_BE_SERIALIZABLE" />
  </Match>
  <Match>
    <Class name="org.apache.hadoop.yarn.exceptions.impl.pb.YarnRemoteExceptionPBImpl" />
    <Field name="builder" />
    <Bug pattern="SE_BAD_FIELD" />
  </Match>
  <Match>
    <Class name="~org\.apache\.hadoop\.yarn\.util\.BuilderUtils.*" />
    <Bug pattern="SE_COMPARATOR_SHOULD_BE_SERIALIZABLE" />
  </Match>
  <Match>
    <Class name="org.apache.hadoop.yarn.server.resourcemanager.resource.Priority$Comparator" />
    <Bug pattern="SE_COMPARATOR_SHOULD_BE_SERIALIZABLE" />
  </Match>
  <Match>
    <Class name="org.apache.hadoop.yarn.server.resourcemanager.scheduler.policy.FifoComparator" />
    <Bug pattern="SE_COMPARATOR_SHOULD_BE_SERIALIZABLE" />
  </Match>
  <Match>
    <Class name="org.apache.hadoop.yarn.server.resourcemanager.scheduler.policy.FairOrderingPolicy$FairComparator" />
    <Bug pattern="SE_COMPARATOR_SHOULD_BE_SERIALIZABLE" />
  </Match>
    <Match>
    <Class name="org.apache.hadoop.yarn.server.resourcemanager.scheduler.policy.CompoundComparator" />
    <Bug pattern="SE_COMPARATOR_SHOULD_BE_SERIALIZABLE" />
  </Match>
  <Match>
    <Class name="org.apache.hadoop.yarn.server.resourcemanager.scheduler.policy.PriorityComparator" />
    <Bug pattern="SE_COMPARATOR_SHOULD_BE_SERIALIZABLE" />
  </Match>
  <Match>
    <Class name="org.apache.hadoop.yarn.server.resourcemanager.scheduler.policy.RecoveryComparator" />
    <Bug pattern="SE_COMPARATOR_SHOULD_BE_SERIALIZABLE" />
  </Match>
  <!-- Ignore some irrelevant class name warning -->
  <Match>
    <Class name="org.apache.hadoop.yarn.api.records.SerializedException" />
    <Bug pattern="NM_CLASS_NOT_EXCEPTION" />
  </Match>

  <!-- Inconsistent sync warning - only start() is synchronized-->
  <Match>
    <Class name="org.apache.hadoop.yarn.server.nodemanager.containermanager.logaggregation.LogAggregationService" />
    <Bug pattern="IS2_INCONSISTENT_SYNC" />
  </Match>
  <Match>
    <Class name="org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.AllocationFileLoaderService" />
    <Field name="allocFile" />
    <Bug pattern="IS2_INCONSISTENT_SYNC" />
  </Match>
  <!-- Inconsistent sync warning - minimumAllocation is only initialized once and never changed -->
  <Match>
    <Class name="org.apache.hadoop.yarn.server.resourcemanager.scheduler.AbstractYarnScheduler" />
    <Field name="minimumAllocation" />
    <Bug pattern="IS2_INCONSISTENT_SYNC" />
  </Match>
  <Match>
    <Class name="org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FSSchedulerNode" />
    <Method name="reserveResource" />
    <Bug pattern="BC_UNCONFIRMED_CAST" /> 
  </Match>
  <!-- Inconsistent sync warning - reinitialize read from other queue does not need sync-->
  <Match>
    <Class name="org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.LeafQueue" />
    <Or>
      <Field name="absoluteCapacity" />
      <Field name="absoluteMaxCapacity" />
      <Field name="acls" />
      <Field name="capacity" />
      <Field name="maxApplications" />
      <Field name="maxApplicationsPerUser" />
      <Field name="maximumCapacity" />
      <Field name="state" />
      <Field name="userLimit" />
      <Field name="userLimitFactor" />
      <Field name="maxAMResourcePerQueuePercent" />
      <Field name="lastClusterResource" />
      <Field name="pendingOrderingPolicy" />
      <Field name="pendingOPForRecoveredApps" />
    </Or>
    <Bug pattern="IS2_INCONSISTENT_SYNC" />
  </Match>
  <Match>
    <Class name="org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.ParentQueue" />
    <Or>
      <Field name="absoluteCapacity" />
      <Field name="absoluteMaxCapacity" />
      <Field name="acls" />
      <Field name="capacity" />
      <Field name="maximumCapacity" />
      <Field name="state" />
    </Or>
    <Bug pattern="IS2_INCONSISTENT_SYNC" />
  </Match>
  <Match>
    <Class name="org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.AbstractCSQueue" />
    <Or>
      <Field name="absoluteCapacity" />
      <Field name="absoluteMaxCapacity" />
      <Field name="acls" />
      <Field name="capacity" />
      <Field name="maximumCapacity" />
      <Field name="state" />
      <Field name="labelManager" />
      <Field name="defaultLabelExpression" />
      <Field name="accessibleLabels" />
      <Field name="absoluteNodeLabelCapacities" />
      <Field name="reservationsContinueLooking" />
      <Field name="absoluteCapacityByNodeLabels" />
      <Field name="authorizer" />
      <Field name="parent" />
    </Or>
    <Bug pattern="IS2_INCONSISTENT_SYNC" />
  </Match>
  <!-- Inconsistent sync warning - scheduleAsynchronously is only initialized once and never changed -->
  <Match>
    <Class name="org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler" />
    <Field name="scheduleAsynchronously" />
    <Bug pattern="IS2_INCONSISTENT_SYNC" />
  </Match>
  <!-- Inconsistent sync warning - updateInterval is only initialized once and never changed -->
  <Match>
    <Class name="org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler" />
    <Field name="updateInterval" />
    <Bug pattern="IS2_INCONSISTENT_SYNC" />
  </Match>
  <!-- Inconsistent sync warning - callDurationMetrics is only initialized once and never changed -->
  <Match>
    <Class name="org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler" />
    <Field name="fsOpDurations" />
    <Bug pattern="IS2_INCONSISTENT_SYNC" />
  </Match>

  <!-- Inconsistent sync warning - numRetries is only initialized once and never changed -->
  <Match>
    <Class name="org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore" />
    <Field name="numRetries" />
    <Bug pattern="IS2_INCONSISTENT_SYNC" />
  </Match>
  <Match>
    <Class name="org.apache.hadoop.yarn.server.resourcemanager.recovery.RMStateStore" />
    <Or>
      <Field name="resourceManager"/>
      <Field name="baseEpoch"/>
    </Or>
    <Bug pattern="IS2_INCONSISTENT_SYNC" />
  </Match>
  <Match>
    <Class name="org.apache.hadoop.yarn.server.resourcemanager.security.DelegationTokenRenewer"/>
    <Field name="renewalTimer" />
    <Bug code="IS"/>
  </Match>
  <Match>
    <Class name="org.apache.hadoop.yarn.client.NMClientImpl$NMCommunicator"/>
    <Field name="containerManager" />
    <Bug pattern="IS2_INCONSISTENT_SYNC"/>
  </Match>

  <Match>
    <Class name="org.apache.hadoop.yarn.server.federation.policies.RouterPolicyFacade"/>
    <Or>
      <Field name="globalConfMap"/>
      <Field name="globalPolicyMap"/>
    </Or>
    <Bug pattern="IS2_INCONSISTENT_SYNC"/>
  </Match>

  <!-- Don't care if putIfAbsent value is ignored -->
  <Match>
    <Package name="org.apache.hadoop.yarn.factories.impl.pb" />
    <Bug pattern="RV_RETURN_VALUE_OF_PUTIFABSENT_IGNORED" />
  </Match>

  <!-- Intended System.exit calls -->
  <Match>
    <Class name="org.apache.hadoop.yarn.webapp.Dispatcher$1" />
    <Bug pattern="DM_EXIT" />
  </Match>
  <Match>
    <Class name="org.apache.hadoop.yarn.webapp.WebApps$Builder" />
    <Bug pattern="DM_EXIT" />
  </Match>
  <Match>
    <Class name="org.apache.hadoop.yarn.server.resourcemanager.security.DelegationTokenRenewer$DelegationTokenCancelThread" />
    <Bug pattern="DM_EXIT" />
  </Match>
  <Match>
    <Class name="org.apache.hadoop.yarn.YarnUncaughtExceptionHandler"/>
    <Bug pattern="DM_EXIT"/>
  </Match>
  <Match>
    <Class name="org.apache.hadoop.yarn.event.AsyncDispatcher$2"/>
    <Method name="run" />
    <Bug pattern="DM_EXIT"/>
  </Match>

  <!-- AsyncDispatcher will kill the process if there is an error dispatching -->
  <Match>
    <Class name="org.apache.hadoop.yarn.event.AsyncDispatcher" />
    <Method name="dispatch" />
    <Bug pattern="DM_EXIT" />
  </Match>
  <Match>
    <Class name="org.apache.hadoop.yarn.event.EventDispatcher$EventProcessor" />
    <Method name="run" />
    <Bug pattern="DM_EXIT" />
  </Match>
  <Match>
    <Class name="org.apache.hadoop.yarn.server.nodemanager.NodeManager" />
    <Method name="initAndStartNodeManager" />
    <Bug pattern="DM_EXIT" />
  </Match>
 
  <!-- Ignore heartbeat exception when killing localizer -->
  <Match>
    <Class name="org.apache.hadoop.yarn.server.nodemanager.containermanager.localizer.ContainerLocalizer" />
    <Method name="localizeFiles" />
    <Bug pattern="DE_MIGHT_IGNORE" />
  </Match>

  <!-- Ignore EI_EXPOSE_REP in PolicyProviders -->
  <Match>
    <Class name="org.apache.hadoop.yarn.server.resourcemanager.security.authorize.RMPolicyProvider" />
    <Bug pattern="EI_EXPOSE_REP" />
  </Match>
  <Match>
    <Class name="org.apache.hadoop.yarn.server.nodemanager.security.authorize.NMPolicyProvider" />
    <Bug pattern="EI_EXPOSE_REP" />
  </Match>


  <!-- Ignore EI_EXPOSE_REP2 in Log services -->
  <Match>
    <Class name="org.apache.hadoop.yarn.logaggregation.AggregatedLogFormat$LogValue" />
    <Bug pattern="EI_EXPOSE_REP2" />
  </Match>
  <Match>
    <Class name="org.apache.hadoop.yarn.server.nodemanager.containermanager.logaggregation.AppLogAggregatorImpl" />
    <Bug pattern="EI_EXPOSE_REP2" />
  </Match>
  
   <!-- /proc/mounts is always in the same place -->
  <Match>
    <Class name="org.apache.hadoop.yarn.server.nodemanager.util.CgroupsLCEResourcesHandler" />
    <Method name="parseMtab" />
    <Bug pattern="DMI_HARDCODED_ABSOLUTE_FILENAME" />
  </Match>

  <!-- rmClient can be ignored as only code blocks outside of rpc calls need to be synchronized -->
  <Match>
    <Class name="org.apache.hadoop.yarn.client.AMRMClientImpl" />
    <Field name="rmClient" />
    <Bug pattern="IS2_INCONSISTENT_SYNC" />
  </Match>

  <!-- Null pointer exception needs to be ignored here as this is never going to occur. -->
  <Match>
    <Class name="org.apache.hadoop.yarn.server.nodemanager.containermanager.localizer.LocalResourcesTrackerImpl" />
    <Method name="decrementFileCountForLocalCacheDirectory" />
    <Bug pattern="NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE" />
  </Match>

  <!-- Null pointer exception needs to be ignored here as this is never going to occur. -->
  <Match>
    <Class name="org.apache.hadoop.yarn.server.nodemanager.containermanager.localizer.LocalResourcesTrackerImpl" />
    <Method name="getPathForLocalization" />
    <Bug pattern="NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE" />
  </Match>

  <!-- This type cast problem will never occur. -->
  <Match>
    <Class name="org.apache.hadoop.yarn.server.nodemanager.containermanager.localizer.LocalResourcesTrackerImpl" />
    <Method name="handle" />
    <Bug pattern="BC_UNCONFIRMED_CAST" />
  </Match>

  <!-- Ignore SerializedException does not extend Exception -->
  <Match>
    <Class name="org.apache.hadoop.yarn.server.api.records.SerializedException" />
    <Bug pattern="NM_CLASS_NOT_EXCEPTION" />
  </Match>

  <Match>
    <Class name="org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore" />
    <Bug pattern="IS2_INCONSISTENT_SYNC" />
  </Match>

  <!-- Multithreaded correctness warnings need to be ignored here as this is for creating the singleton.-->
  <Match>
      <Class name="org.apache.hadoop.yarn.server.resourcemanager.security.authorize.RMPolicyProvider"/>
      <Bug pattern="DC_DOUBLECHECK" />
  </Match>

  <!-- ApplicationClassLoader is deprecated and moved to hadoop-common; ignore
       warning on the identical name as it should be removed later -->
  <Match>
    <Class name="org.apache.hadoop.yarn.util.ApplicationClassLoader"/>
    <Bug pattern="NM_SAME_SIMPLE_NAME_AS_SUPERCLASS"/>
  </Match>

   <!-- It is only changed on re-initialization the warnings are for access from a test function. -->
  <Match>
    <Class name="org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.LeafQueue" />
    <Field name="reservationsContinueLooking" />
    <Bug pattern="IS2_INCONSISTENT_SYNC" />
  </Match>
  <Match>
    <Class name="org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.ParentQueue" />
    <Field name="reservationsContinueLooking" />
    <Bug pattern="IS2_INCONSISTENT_SYNC" />
  </Match>

  <!--
  This code is meant to deserialize this way...subclasses of will need to
  instantiate their own JsonSerDeser instances if they want to deserialize.
  -->
  <Match>
    <Class name="org.apache.hadoop.registry.client.binding.JsonSerDeser"/>
    <Bug pattern="UI_INHERITANCE_UNSAFE_GETRESOURCE"/>
  </Match>

  <!-- Ignore the false alarms on DM_DEFAULT_ENCODING (encoding already set) -->
  <Match>
    <Class name="org.apache.hadoop.yarn.logaggregation.AggregatedLogFormat$LogReader" />
    <Bug pattern="DM_DEFAULT_ENCODING" />
  </Match>

  <!-- Ignore EI_EXPOSE_REP2 in timeline service -->
  <Match>
    <Class name="org.apache.hadoop.yarn.server.timeline.util.LeveldbUtils$KeyParser" />
    <Bug pattern="EI_EXPOSE_REP2" />
  </Match>

  <!-- Ignore unrelated RV_RETURN_VALUE_IGNORED_BAD_PRACTICE warnings. No need to wait for result from executor service -->
  <Match>
    <Class name="org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainersLauncher" />
    <Bug pattern="RV_RETURN_VALUE_IGNORED_BAD_PRACTICE" />
  </Match>
  <Match>
    <Class name="org.apache.hadoop.yarn.server.nodemanager.containermanager.localizer.sharedcache.SharedCacheUploadService" />
    <Bug pattern="RV_RETURN_VALUE_IGNORED_BAD_PRACTICE" />
  </Match>

  <Match>
    <Class name="org.apache.hadoop.yarn.server.resourcemanager.scheduler.SchedulerApplicationAttempt" />
    <Field name="queue" />
    <Bug pattern="IS2_INCONSISTENT_SYNC" />
  </Match>
  <Match>
    <Class name="org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler" />
    <Field name="allocConf" />
    <Bug pattern="IS2_INCONSISTENT_SYNC" />
  </Match>
  <Match>
    <Class name="org.apache.hadoop.yarn.server.resourcemanager.scheduler.SchedulerNode" />
    <Field name="numContainers" />
    <Bug pattern="VO_VOLATILE_INCREMENT" />
  </Match>
  <Match>
    <Class name="org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.AbstractCSQueue" />
    <Field name="numContainers" />
    <Bug pattern="VO_VOLATILE_INCREMENT" />
  </Match>
  <Match>
    <Class name="org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.ParentQueue" />
    <Field name="numApplications" />
    <Bug pattern="VO_VOLATILE_INCREMENT" />
  </Match>
  <Match>
    <Class name="org.apache.hadoop.yarn.server.resourcemanager.scheduler.AbstractYarnScheduler" />
    <Method name="recoverContainersOnNode" />
    <Bug pattern="RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE" />
  </Match>
  <Match>
    <Class name="org.apache.hadoop.yarn.server.resourcemanager.scheduler.AbstractYarnScheduler" />
    <Or>
      <Field name="rmContext" />
      <Field name="applications" />
      <Field name="activitiesManager" />
    </Or>
    <Bug pattern="IS2_INCONSISTENT_SYNC" />
  </Match>
  <!-- Ignore SQL_PREPARED_STATEMENT_GENERATED_FROM_NONCONSTANT_STRING warnings for Timeline Phoenix storage. -->
  <!-- Since we're using dynamic columns, we have to generate SQL statements dynamically -->
  <Match>
    <Class name="org.apache.hadoop.yarn.server.timelineservice.storage.PhoenixOfflineAggregationWriterImpl" />
    <Or>
      <Method name="storeEntityVariableLengthFields" />
      <Method name="writeAggregatedEntity" />
    </Or>
    <Bug pattern="SQL_PREPARED_STATEMENT_GENERATED_FROM_NONCONSTANT_STRING" />
  </Match>
  
  <!-- Following fields are used in ErrorsAndWarningsBlock, which is not a part of analysis of findbugs -->
  <Match>
    <Class name="org.apache.hadoop.yarn.util.Log4jWarningErrorMetricsAppender$Element" />
    <Or>
      <Field name="count" />
      <Field name="timestampSeconds" />
    </Or>
    <Bug pattern="URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD" />
  </Match>

  <Match>
    <Class name="org.apache.hadoop.yarn.api.records.ResourceRequest" />
    <Method name="equals" />
    <Bug pattern="RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE" />
  </Match>
  <Match>
    <Package name="org.apache.hadoop.yarn.api.records.impl.pb" />
    <Bug pattern="NP_BOOLEAN_RETURN_NULL" />
  </Match>
  <Match>
    <Class name="org.apache.hadoop.yarn.server.resourcemanager.webapp.dao.ActivityNodeInfo"/>
    <Or>
      <Field name="allocationState" />
      <Field name="diagnostic" />
      <Field name="name" />
      <Field name="requestPriority" />
      <Field name="appPriority" />
    </Or>
    <Bug pattern="URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD" />
  </Match>

  <!-- Ignore VO_VOLATILE_INCREMENT, they will be protected by writeLock -->
  <Match>
    <Class name="org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.LeafQueue$User" />
    <Or>
      <Field name="pendingApplications" />
      <Field name="activeApplications" />
    </Or>
    <Bug pattern="VO_VOLATILE_INCREMENT" />
  </Match>


  <!-- Ignore false alert for UL_UNRELEASED_LOCK_EXCEPTION_PATH -->
  <Match>
    <Class name="org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler$ResourceCommitterService"/>
    <Method name="run" />
    <Bug pattern="UL_UNRELEASED_LOCK_EXCEPTION_PATH" />
  </Match>

  <Match>
    <Class name="org.apache.hadoop.yarn.server.nodemanager.amrmproxy.FederationInterceptor" />
    <Bug pattern="IS2_INCONSISTENT_SYNC" />
  </Match>

  <!-- Ignore MS_EXPOSE_REP -->
    <Match>
    <Class name="org.apache.hadoop.yarn.util.resource.ResourceUtils" />
    <Method name="getResourceTypesArray" />
    <Bug pattern="MS_EXPOSE_REP" />
  </Match>

  <Match>
    <Class name="org.apache.hadoop.yarn.util.resource.ResourceUtils" />
    <Method name="getResourceNamesArray" />
    <Bug pattern="MS_EXPOSE_REP" />
  </Match>

  <Match>
    <Class name="org.apache.hadoop.yarn.api.records.Resource" />
    <Method name="getResources" />
    <Bug pattern="EI_EXPOSE_REP" />
  </Match>
</FindBugsFilter>
<commit_msg>YARN-7432. Fix DominantResourceFairnessPolicy serializable findbugs issues. (<NAME> via Subru).<commit_after><!--
   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>
  <!-- Ignore PB Generated Code -->
  <Match>
    <Package name="org.apache.hadoop.yarn.proto" />
  </Match>
  <Match>
    <Package name="org.apache.hadoop.yarn.federation.proto" />
  </Match>
  <Match>
    <Class name="~org\.apache\.hadoop\.yarn\.ipc\.RpcProtos.*" />
  </Match>

  <Match>
    <Class name="org.apache.hadoop.yarn.service.AbstractService" />
    <Bug pattern="JLM_JSR166_UTILCONCURRENT_MONITORENTER" />
  </Match>

  <!-- Ignore unchecked Event casts -->
  <Match>
    <Class name="org.apache.hadoop.yarn.server.nodemanager.containermanager.ContainerManagerImpl" />
    <Bug pattern="BC_UNCONFIRMED_CAST" />
  </Match>
  <Match>
    <Class name="~org\.apache\.hadoop\.yarn\.server\.nodemanager\.containermanager\.application\.ApplicationImpl.*" />
    <Bug pattern="BC_UNCONFIRMED_CAST" />
  </Match>
  <Match>
    <Class name="~org\.apache\.hadoop\.yarn\.server\.nodemanager\.containermanager\.container\.ContainerImpl.*" />
    <Bug pattern="BC_UNCONFIRMED_CAST" />
  </Match>
  <Match>
    <Class name="~org\.apache\.hadoop\.yarn\.server\.nodemanager\.containermanager\.localizer\.LocalizedResource.*" />
    <Bug pattern="BC_UNCONFIRMED_CAST" />
  </Match>
  <Match>
    <Class name="~org\.apache\.hadoop\.yarn\.server\.nodemanager\.containermanager\.localizer\.ResourceLocalizationService.*" />
    <Bug pattern="BC_UNCONFIRMED_CAST" />
  </Match>
  <Match>
    <Class name="org.apache.hadoop.yarn.server.nodemanager.containermanager.monitor.ContainersMonitorImpl" />
    <Bug pattern="BC_UNCONFIRMED_CAST" />
  </Match>
  <Match>
    <Class name="~org\.apache\.hadoop\.yarn\.server\.resourcemanager\.rmapp\.RMAppImpl.*" />
    <Bug pattern="BC_UNCONFIRMED_CAST" />
  </Match>
  <Match>
    <Class name="~org\.apache\.hadoop\.yarn\.server\.resourcemanager\.rmapp\.attempt\.RMAppAttemptImpl.*" />
    <Bug pattern="BC_UNCONFIRMED_CAST" />
  </Match>
  <Match>
    <Class name="org.apache.hadoop.yarn.server.resourcemanager.rmapp.attempt.RMAppAttemptMetrics" />
    <Method name="getLocalityStatistics" />
    <Bug pattern="EI_EXPOSE_REP" />
  </Match>
  <Match>
    <Class name="org.apache.hadoop.yarn.server.resourcemanager.rmapp.attempt.RMAppAttemptMetrics" />
    <Method name="incNumAllocatedContainers"/>
    <Bug pattern="VO_VOLATILE_INCREMENT" />
  </Match>
  <Match>
    <Class name="org.apache.hadoop.yarn.server.resourcemanager.rmapp.RMAppImpl$AppRejectedTransition" />
    <Bug pattern="BC_UNCONFIRMED_CAST" />
  </Match>
  <Match>
    <Class name="~org\.apache\.hadoop\.yarn\.server\.resourcemanager\.rmcontainer\.RMContainerImpl.*" />
    <Bug pattern="BC_UNCONFIRMED_CAST" />
  </Match>
  <Match>
    <Class name="~org\.apache\.hadoop\.yarn\.server\.resourcemanager\.rmnode\.RMNodeImpl.*" />
    <Bug pattern="BC_UNCONFIRMED_CAST" />
  </Match>
  <Match>
    <Class name="~org\.apache\.hadoop\.yarn\.server\.resourcemanager\.RMAppManager.*" />
    <Method name="handle" />
    <Bug pattern="BC_UNCONFIRMED_CAST" />
  </Match>
  <Match>
    <Class name="~org\.apache\.hadoop\.yarn\.server\.resourcemanager\.scheduler\.capacity\.CapacityScheduler.*" />
    <Method name="handle" />
    <Bug pattern="BC_UNCONFIRMED_CAST" />
  </Match>
  <Match>
    <Class name="~org\.apache\.hadoop\.yarn\.server\.resourcemanager\.scheduler\.fifo\.FifoScheduler.*" />
    <Method name="handle" />
    <Bug pattern="BC_UNCONFIRMED_CAST" />
  </Match>
  <Match>
    <Class name="~org\.apache\.hadoop\.yarn\.server\.nodemanager\.containermanager\.logaggregation\.LogAggregationService.*" />
    <Method name="handle" />
    <Bug pattern="BC_UNCONFIRMED_CAST" />
  </Match>
  <Match>
    <Class name="~org\.apache\.hadoop\.yarn\.server\.nodemanager\.containermanager\.loghandler\.NonAggregatingLogHandler.*" />
    <Method name="handle" />
    <Bug pattern="BC_UNCONFIRMED_CAST" />
  </Match>
  <Match>
    <Class name="org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainersLauncher" />
    <Method name="handle" />
    <Bug pattern="BC_UNCONFIRMED_CAST" />
  </Match>

  <!-- Object cast is based on the event type -->
  <Match>
    <Class name="org.apache.hadoop.yarn.server.nodemanager.timelineservice.NMTimelinePublisher" />
    <Method name="publishApplicationEvent" />
    <Bug pattern="BC_UNCONFIRMED_CAST" />
  </Match>

  <Match>
    <Class name="org.apache.hadoop.yarn.server.nodemanager.timelineservice.NMTimelinePublisher" />
    <Method name="publishLocalizationEvent" />
    <Bug pattern="BC_UNCONFIRMED_CAST" />
  </Match>

  <Match>
    <Class name="org.apache.hadoop.yarn.server.resourcemanager.metrics.TimelineServiceV2Publisher$TimelineV2EventHandler" />
     <Bug pattern="BC_UNCONFIRMED_CAST" />
  </Match>

  <!-- Ignore intentional switch fallthroughs -->
  <Match>
    <Class name="org.apache.hadoop.yarn.server.nodemanager.containermanager.container.ContainerImpl" />
    <Method name="finished" />
    <Bug pattern="SF_SWITCH_FALLTHROUGH" />
  </Match>
  <Match>
    <Class name="org.apache.hadoop.yarn.server.nodemanager.containermanager.localizer.ContainerLocalizer" />
    <Method name="localizeFiles" />
    <Bug pattern="SF_SWITCH_FALLTHROUGH" />
  </Match>

  <!-- Ignore some irrelevant serialization warnings -->
  <Match>
    <Class name="org.apache.hadoop.yarn.server.nodemanager.containermanager.localizer.ResourceRetentionSet$LRUComparator" />
    <Bug pattern="SE_COMPARATOR_SHOULD_BE_SERIALIZABLE" />
  </Match>
  <Match>
    <Class name="org.apache.hadoop.yarn.client.api.impl.AMRMClientImpl$ProfileCapabilityComparator" />
    <Bug pattern="SE_COMPARATOR_SHOULD_BE_SERIALIZABLE" />
  </Match>
  <Match>
    <Class name="org.apache.hadoop.yarn.exceptions.impl.pb.YarnRemoteExceptionPBImpl" />
    <Field name="builder" />
    <Bug pattern="SE_BAD_FIELD" />
  </Match>
  <Match>
    <Class name="~org\.apache\.hadoop\.yarn\.util\.BuilderUtils.*" />
    <Bug pattern="SE_COMPARATOR_SHOULD_BE_SERIALIZABLE" />
  </Match>
  <Match>
    <Class name="org.apache.hadoop.yarn.server.resourcemanager.resource.Priority$Comparator" />
    <Bug pattern="SE_COMPARATOR_SHOULD_BE_SERIALIZABLE" />
  </Match>
  <Match>
    <Class name="org.apache.hadoop.yarn.server.resourcemanager.scheduler.policy.FifoComparator" />
    <Bug pattern="SE_COMPARATOR_SHOULD_BE_SERIALIZABLE" />
  </Match>
  <Match>
    <Class name="org.apache.hadoop.yarn.server.resourcemanager.scheduler.policy.FairOrderingPolicy$FairComparator" />
    <Bug pattern="SE_COMPARATOR_SHOULD_BE_SERIALIZABLE" />
  </Match>
  <Match>
    <Class name="org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.policies.DominantResourceFairnessPolicy$DominantResourceFairnessComparator" />
    <Bug pattern="SE_COMPARATOR_SHOULD_BE_SERIALIZABLE" />
  </Match>
  <Match>
    <Class name="org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.policies.DominantResourceFairnessPolicy$DominantResourceFairnessComparator2" />
    <Bug pattern="SE_COMPARATOR_SHOULD_BE_SERIALIZABLE" />
  </Match>
  <Match>
    <Class name="org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.policies.DominantResourceFairnessPolicy$DominantResourceFairnessComparatorN" />
    <Bug pattern="SE_COMPARATOR_SHOULD_BE_SERIALIZABLE" />
  </Match>
    <Match>
    <Class name="org.apache.hadoop.yarn.server.resourcemanager.scheduler.policy.CompoundComparator" />
    <Bug pattern="SE_COMPARATOR_SHOULD_BE_SERIALIZABLE" />
  </Match>
  <Match>
    <Class name="org.apache.hadoop.yarn.server.resourcemanager.scheduler.policy.PriorityComparator" />
    <Bug pattern="SE_COMPARATOR_SHOULD_BE_SERIALIZABLE" />
  </Match>
  <Match>
    <Class name="org.apache.hadoop.yarn.server.resourcemanager.scheduler.policy.RecoveryComparator" />
    <Bug pattern="SE_COMPARATOR_SHOULD_BE_SERIALIZABLE" />
  </Match>
  <!-- Ignore some irrelevant class name warning -->
  <Match>
    <Class name="org.apache.hadoop.yarn.api.records.SerializedException" />
    <Bug pattern="NM_CLASS_NOT_EXCEPTION" />
  </Match>

  <!-- Inconsistent sync warning - only start() is synchronized-->
  <Match>
    <Class name="org.apache.hadoop.yarn.server.nodemanager.containermanager.logaggregation.LogAggregationService" />
    <Bug pattern="IS2_INCONSISTENT_SYNC" />
  </Match>
  <Match>
    <Class name="org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.AllocationFileLoaderService" />
    <Field name="allocFile" />
    <Bug pattern="IS2_INCONSISTENT_SYNC" />
  </Match>
  <!-- Inconsistent sync warning - minimumAllocation is only initialized once and never changed -->
  <Match>
    <Class name="org.apache.hadoop.yarn.server.resourcemanager.scheduler.AbstractYarnScheduler" />
    <Field name="minimumAllocation" />
    <Bug pattern="IS2_INCONSISTENT_SYNC" />
  </Match>
  <Match>
    <Class name="org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FSSchedulerNode" />
    <Method name="reserveResource" />
    <Bug pattern="BC_UNCONFIRMED_CAST" /> 
  </Match>
  <!-- Inconsistent sync warning - reinitialize read from other queue does not need sync-->
  <Match>
    <Class name="org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.LeafQueue" />
    <Or>
      <Field name="absoluteCapacity" />
      <Field name="absoluteMaxCapacity" />
      <Field name="acls" />
      <Field name="capacity" />
      <Field name="maxApplications" />
      <Field name="maxApplicationsPerUser" />
      <Field name="maximumCapacity" />
      <Field name="state" />
      <Field name="userLimit" />
      <Field name="userLimitFactor" />
      <Field name="maxAMResourcePerQueuePercent" />
      <Field name="lastClusterResource" />
      <Field name="pendingOrderingPolicy" />
      <Field name="pendingOPForRecoveredApps" />
    </Or>
    <Bug pattern="IS2_INCONSISTENT_SYNC" />
  </Match>
  <Match>
    <Class name="org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.ParentQueue" />
    <Or>
      <Field name="absoluteCapacity" />
      <Field name="absoluteMaxCapacity" />
      <Field name="acls" />
      <Field name="capacity" />
      <Field name="maximumCapacity" />
      <Field name="state" />
    </Or>
    <Bug pattern="IS2_INCONSISTENT_SYNC" />
  </Match>
  <Match>
    <Class name="org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.AbstractCSQueue" />
    <Or>
      <Field name="absoluteCapacity" />
      <Field name="absoluteMaxCapacity" />
      <Field name="acls" />
      <Field name="capacity" />
      <Field name="maximumCapacity" />
      <Field name="state" />
      <Field name="labelManager" />
      <Field name="defaultLabelExpression" />
      <Field name="accessibleLabels" />
      <Field name="absoluteNodeLabelCapacities" />
      <Field name="reservationsContinueLooking" />
      <Field name="absoluteCapacityByNodeLabels" />
      <Field name="authorizer" />
      <Field name="parent" />
    </Or>
    <Bug pattern="IS2_INCONSISTENT_SYNC" />
  </Match>
  <!-- Inconsistent sync warning - scheduleAsynchronously is only initialized once and never changed -->
  <Match>
    <Class name="org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler" />
    <Field name="scheduleAsynchronously" />
    <Bug pattern="IS2_INCONSISTENT_SYNC" />
  </Match>
  <!-- Inconsistent sync warning - updateInterval is only initialized once and never changed -->
  <Match>
    <Class name="org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler" />
    <Field name="updateInterval" />
    <Bug pattern="IS2_INCONSISTENT_SYNC" />
  </Match>
  <!-- Inconsistent sync warning - callDurationMetrics is only initialized once and never changed -->
  <Match>
    <Class name="org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler" />
    <Field name="fsOpDurations" />
    <Bug pattern="IS2_INCONSISTENT_SYNC" />
  </Match>

  <!-- Inconsistent sync warning - numRetries is only initialized once and never changed -->
  <Match>
    <Class name="org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore" />
    <Field name="numRetries" />
    <Bug pattern="IS2_INCONSISTENT_SYNC" />
  </Match>
  <Match>
    <Class name="org.apache.hadoop.yarn.server.resourcemanager.recovery.RMStateStore" />
    <Or>
      <Field name="resourceManager"/>
      <Field name="baseEpoch"/>
    </Or>
    <Bug pattern="IS2_INCONSISTENT_SYNC" />
  </Match>
  <Match>
    <Class name="org.apache.hadoop.yarn.server.resourcemanager.security.DelegationTokenRenewer"/>
    <Field name="renewalTimer" />
    <Bug code="IS"/>
  </Match>
  <Match>
    <Class name="org.apache.hadoop.yarn.client.NMClientImpl$NMCommunicator"/>
    <Field name="containerManager" />
    <Bug pattern="IS2_INCONSISTENT_SYNC"/>
  </Match>

  <Match>
    <Class name="org.apache.hadoop.yarn.server.federation.policies.RouterPolicyFacade"/>
    <Or>
      <Field name="globalConfMap"/>
      <Field name="globalPolicyMap"/>
    </Or>
    <Bug pattern="IS2_INCONSISTENT_SYNC"/>
  </Match>

  <!-- Don't care if putIfAbsent value is ignored -->
  <Match>
    <Package name="org.apache.hadoop.yarn.factories.impl.pb" />
    <Bug pattern="RV_RETURN_VALUE_OF_PUTIFABSENT_IGNORED" />
  </Match>

  <!-- Intended System.exit calls -->
  <Match>
    <Class name="org.apache.hadoop.yarn.webapp.Dispatcher$1" />
    <Bug pattern="DM_EXIT" />
  </Match>
  <Match>
    <Class name="org.apache.hadoop.yarn.webapp.WebApps$Builder" />
    <Bug pattern="DM_EXIT" />
  </Match>
  <Match>
    <Class name="org.apache.hadoop.yarn.server.resourcemanager.security.DelegationTokenRenewer$DelegationTokenCancelThread" />
    <Bug pattern="DM_EXIT" />
  </Match>
  <Match>
    <Class name="org.apache.hadoop.yarn.YarnUncaughtExceptionHandler"/>
    <Bug pattern="DM_EXIT"/>
  </Match>
  <Match>
    <Class name="org.apache.hadoop.yarn.event.AsyncDispatcher$2"/>
    <Method name="run" />
    <Bug pattern="DM_EXIT"/>
  </Match>

  <!-- AsyncDispatcher will kill the process if there is an error dispatching -->
  <Match>
    <Class name="org.apache.hadoop.yarn.event.AsyncDispatcher" />
    <Method name="dispatch" />
    <Bug pattern="DM_EXIT" />
  </Match>
  <Match>
    <Class name="org.apache.hadoop.yarn.event.EventDispatcher$EventProcessor" />
    <Method name="run" />
    <Bug pattern="DM_EXIT" />
  </Match>
  <Match>
    <Class name="org.apache.hadoop.yarn.server.nodemanager.NodeManager" />
    <Method name="initAndStartNodeManager" />
    <Bug pattern="DM_EXIT" />
  </Match>
 
  <!-- Ignore heartbeat exception when killing localizer -->
  <Match>
    <Class name="org.apache.hadoop.yarn.server.nodemanager.containermanager.localizer.ContainerLocalizer" />
    <Method name="localizeFiles" />
    <Bug pattern="DE_MIGHT_IGNORE" />
  </Match>

  <!-- Ignore EI_EXPOSE_REP in PolicyProviders -->
  <Match>
    <Class name="org.apache.hadoop.yarn.server.resourcemanager.security.authorize.RMPolicyProvider" />
    <Bug pattern="EI_EXPOSE_REP" />
  </Match>
  <Match>
    <Class name="org.apache.hadoop.yarn.server.nodemanager.security.authorize.NMPolicyProvider" />
    <Bug pattern="EI_EXPOSE_REP" />
  </Match>


  <!-- Ignore EI_EXPOSE_REP2 in Log services -->
  <Match>
    <Class name="org.apache.hadoop.yarn.logaggregation.AggregatedLogFormat$LogValue" />
    <Bug pattern="EI_EXPOSE_REP2" />
  </Match>
  <Match>
    <Class name="org.apache.hadoop.yarn.server.nodemanager.containermanager.logaggregation.AppLogAggregatorImpl" />
    <Bug pattern="EI_EXPOSE_REP2" />
  </Match>
  
   <!-- /proc/mounts is always in the same place -->
  <Match>
    <Class name="org.apache.hadoop.yarn.server.nodemanager.util.CgroupsLCEResourcesHandler" />
    <Method name="parseMtab" />
    <Bug pattern="DMI_HARDCODED_ABSOLUTE_FILENAME" />
  </Match>

  <!-- rmClient can be ignored as only code blocks outside of rpc calls need to be synchronized -->
  <Match>
    <Class name="org.apache.hadoop.yarn.client.AMRMClientImpl" />
    <Field name="rmClient" />
    <Bug pattern="IS2_INCONSISTENT_SYNC" />
  </Match>

  <!-- Null pointer exception needs to be ignored here as this is never going to occur. -->
  <Match>
    <Class name="org.apache.hadoop.yarn.server.nodemanager.containermanager.localizer.LocalResourcesTrackerImpl" />
    <Method name="decrementFileCountForLocalCacheDirectory" />
    <Bug pattern="NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE" />
  </Match>

  <!-- Null pointer exception needs to be ignored here as this is never going to occur. -->
  <Match>
    <Class name="org.apache.hadoop.yarn.server.nodemanager.containermanager.localizer.LocalResourcesTrackerImpl" />
    <Method name="getPathForLocalization" />
    <Bug pattern="NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE" />
  </Match>

  <!-- This type cast problem will never occur. -->
  <Match>
    <Class name="org.apache.hadoop.yarn.server.nodemanager.containermanager.localizer.LocalResourcesTrackerImpl" />
    <Method name="handle" />
    <Bug pattern="BC_UNCONFIRMED_CAST" />
  </Match>

  <!-- Ignore SerializedException does not extend Exception -->
  <Match>
    <Class name="org.apache.hadoop.yarn.server.api.records.SerializedException" />
    <Bug pattern="NM_CLASS_NOT_EXCEPTION" />
  </Match>

  <Match>
    <Class name="org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore" />
    <Bug pattern="IS2_INCONSISTENT_SYNC" />
  </Match>

  <!-- Multithreaded correctness warnings need to be ignored here as this is for creating the singleton.-->
  <Match>
      <Class name="org.apache.hadoop.yarn.server.resourcemanager.security.authorize.RMPolicyProvider"/>
      <Bug pattern="DC_DOUBLECHECK" />
  </Match>

  <!-- ApplicationClassLoader is deprecated and moved to hadoop-common; ignore
       warning on the identical name as it should be removed later -->
  <Match>
    <Class name="org.apache.hadoop.yarn.util.ApplicationClassLoader"/>
    <Bug pattern="NM_SAME_SIMPLE_NAME_AS_SUPERCLASS"/>
  </Match>

   <!-- It is only changed on re-initialization the warnings are for access from a test function. -->
  <Match>
    <Class name="org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.LeafQueue" />
    <Field name="reservationsContinueLooking" />
    <Bug pattern="IS2_INCONSISTENT_SYNC" />
  </Match>
  <Match>
    <Class name="org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.ParentQueue" />
    <Field name="reservationsContinueLooking" />
    <Bug pattern="IS2_INCONSISTENT_SYNC" />
  </Match>

  <!--
  This code is meant to deserialize this way...subclasses of will need to
  instantiate their own JsonSerDeser instances if they want to deserialize.
  -->
  <Match>
    <Class name="org.apache.hadoop.registry.client.binding.JsonSerDeser"/>
    <Bug pattern="UI_INHERITANCE_UNSAFE_GETRESOURCE"/>
  </Match>

  <!-- Ignore the false alarms on DM_DEFAULT_ENCODING (encoding already set) -->
  <Match>
    <Class name="org.apache.hadoop.yarn.logaggregation.AggregatedLogFormat$LogReader" />
    <Bug pattern="DM_DEFAULT_ENCODING" />
  </Match>

  <!-- Ignore EI_EXPOSE_REP2 in timeline service -->
  <Match>
    <Class name="org.apache.hadoop.yarn.server.timeline.util.LeveldbUtils$KeyParser" />
    <Bug pattern="EI_EXPOSE_REP2" />
  </Match>

  <!-- Ignore unrelated RV_RETURN_VALUE_IGNORED_BAD_PRACTICE warnings. No need to wait for result from executor service -->
  <Match>
    <Class name="org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainersLauncher" />
    <Bug pattern="RV_RETURN_VALUE_IGNORED_BAD_PRACTICE" />
  </Match>
  <Match>
    <Class name="org.apache.hadoop.yarn.server.nodemanager.containermanager.localizer.sharedcache.SharedCacheUploadService" />
    <Bug pattern="RV_RETURN_VALUE_IGNORED_BAD_PRACTICE" />
  </Match>

  <Match>
    <Class name="org.apache.hadoop.yarn.server.resourcemanager.scheduler.SchedulerApplicationAttempt" />
    <Field name="queue" />
    <Bug pattern="IS2_INCONSISTENT_SYNC" />
  </Match>
  <Match>
    <Class name="org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler" />
    <Field name="allocConf" />
    <Bug pattern="IS2_INCONSISTENT_SYNC" />
  </Match>
  <Match>
    <Class name="org.apache.hadoop.yarn.server.resourcemanager.scheduler.SchedulerNode" />
    <Field name="numContainers" />
    <Bug pattern="VO_VOLATILE_INCREMENT" />
  </Match>
  <Match>
    <Class name="org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.AbstractCSQueue" />
    <Field name="numContainers" />
    <Bug pattern="VO_VOLATILE_INCREMENT" />
  </Match>
  <Match>
    <Class name="org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.ParentQueue" />
    <Field name="numApplications" />
    <Bug pattern="VO_VOLATILE_INCREMENT" />
  </Match>
  <Match>
    <Class name="org.apache.hadoop.yarn.server.resourcemanager.scheduler.AbstractYarnScheduler" />
    <Method name="recoverContainersOnNode" />
    <Bug pattern="RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE" />
  </Match>
  <Match>
    <Class name="org.apache.hadoop.yarn.server.resourcemanager.scheduler.AbstractYarnScheduler" />
    <Or>
      <Field name="rmContext" />
      <Field name="applications" />
      <Field name="activitiesManager" />
    </Or>
    <Bug pattern="IS2_INCONSISTENT_SYNC" />
  </Match>
  <!-- Ignore SQL_PREPARED_STATEMENT_GENERATED_FROM_NONCONSTANT_STRING warnings for Timeline Phoenix storage. -->
  <!-- Since we're using dynamic columns, we have to generate SQL statements dynamically -->
  <Match>
    <Class name="org.apache.hadoop.yarn.server.timelineservice.storage.PhoenixOfflineAggregationWriterImpl" />
    <Or>
      <Method name="storeEntityVariableLengthFields" />
      <Method name="writeAggregatedEntity" />
    </Or>
    <Bug pattern="SQL_PREPARED_STATEMENT_GENERATED_FROM_NONCONSTANT_STRING" />
  </Match>
  
  <!-- Following fields are used in ErrorsAndWarningsBlock, which is not a part of analysis of findbugs -->
  <Match>
    <Class name="org.apache.hadoop.yarn.util.Log4jWarningErrorMetricsAppender$Element" />
    <Or>
      <Field name="count" />
      <Field name="timestampSeconds" />
    </Or>
    <Bug pattern="URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD" />
  </Match>

  <Match>
    <Class name="org.apache.hadoop.yarn.api.records.ResourceRequest" />
    <Method name="equals" />
    <Bug pattern="RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE" />
  </Match>
  <Match>
    <Package name="org.apache.hadoop.yarn.api.records.impl.pb" />
    <Bug pattern="NP_BOOLEAN_RETURN_NULL" />
  </Match>
  <Match>
    <Class name="org.apache.hadoop.yarn.server.resourcemanager.webapp.dao.ActivityNodeInfo"/>
    <Or>
      <Field name="allocationState" />
      <Field name="diagnostic" />
      <Field name="name" />
      <Field name="requestPriority" />
      <Field name="appPriority" />
    </Or>
    <Bug pattern="URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD" />
  </Match>

  <!-- Ignore VO_VOLATILE_INCREMENT, they will be protected by writeLock -->
  <Match>
    <Class name="org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.LeafQueue$User" />
    <Or>
      <Field name="pendingApplications" />
      <Field name="activeApplications" />
    </Or>
    <Bug pattern="VO_VOLATILE_INCREMENT" />
  </Match>


  <!-- Ignore false alert for UL_UNRELEASED_LOCK_EXCEPTION_PATH -->
  <Match>
    <Class name="org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler$ResourceCommitterService"/>
    <Method name="run" />
    <Bug pattern="UL_UNRELEASED_LOCK_EXCEPTION_PATH" />
  </Match>

  <Match>
    <Class name="org.apache.hadoop.yarn.server.nodemanager.amrmproxy.FederationInterceptor" />
    <Bug pattern="IS2_INCONSISTENT_SYNC" />
  </Match>

  <!-- Ignore MS_EXPOSE_REP -->
    <Match>
    <Class name="org.apache.hadoop.yarn.util.resource.ResourceUtils" />
    <Method name="getResourceTypesArray" />
    <Bug pattern="MS_EXPOSE_REP" />
  </Match>

  <Match>
    <Class name="org.apache.hadoop.yarn.util.resource.ResourceUtils" />
    <Method name="getResourceNamesArray" />
    <Bug pattern="MS_EXPOSE_REP" />
  </Match>

  <Match>
    <Class name="org.apache.hadoop.yarn.api.records.Resource" />
    <Method name="getResources" />
    <Bug pattern="EI_EXPOSE_REP" />
  </Match>
</FindBugsFilter>

{'fraction_non_alphanumeric': 0.147646495712569, 'fraction_numerical': 0.0016497953031753467, 'mean_word_length': 3.792386530014641, 'pattern_counts': {'":': 0, '<': 1142, '<?xml version=': 0, '>': 1142, 'https://': 0, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3435528', 'n_tokens_mistral': 16870, 'n_tokens_neox': 16165, 'n_words': 2604}