<FindBugsFilter>
  <Match>
    <Or>
      <Class name="org.apache.hadoop.fs.XAttr"/>
      <Class name="org.apache.hadoop.fs.XAttr$Builder"/>
      <Class name="org.apache.hadoop.hdfs.inotify.EventBatch"/>
      <Class name="org.apache.hadoop.hdfs.protocol.HdfsFileStatus"/>
      <Class name="org.apache.hadoop.hdfs.protocol.LocatedBlock"/>
      <Class name="org.apache.hadoop.hdfs.protocol.BatchedDirectoryListing" />
      <Class name="org.apache.hadoop.hdfs.protocol.BlockStoragePolicy"/>
      <Class name="org.apache.hadoop.hdfs.protocol.CorruptFileBlocks"/>
      <Class name="org.apache.hadoop.hdfs.protocol.StripedBlockInfo"/>
      <Class name="org.apache.hadoop.hdfs.protocol.DirectoryListing"/>
      <Class name="org.apache.hadoop.hdfs.security.token.block.BlockTokenIdentifier"/>
      <Class name="org.apache.hadoop.hdfs.security.token.block.DataEncryptionKey"/>
      <Class name="org.apache.hadoop.hdfs.protocol.SnapshotDiffReport$DiffReportEntry"/>
      <Class name="org.apache.hadoop.hdfs.protocol.SnapshottableDirectoryStatus"/>
      <Class name="org.apache.hadoop.hdfs.server.protocol.DatanodeStorageReport"/>
      <Class name="org.apache.hadoop.hdfs.protocol.datatransfer.sasl.SaslResponseWithNegotiatedCipherOption"/>
      <Class name="org.apache.hadoop.hdfs.DFSPacket"/>
      <Class name="org.apache.hadoop.hdfs.protocol.LocatedStripedBlock"/>
      <Class name="org.apache.hadoop.hdfs.util.StripedBlockUtil$ChunkByteArray"/>
      <Class name="org.apache.hadoop.hdfs.protocol.SnapshotDiffReportListing$DiffReportListingEntry"/>
      <Class name="org.apache.hadoop.hdfs.protocol.SnapshotDiffReportListing"/>
      <Class name="org.apache.hadoop.hdfs.protocol.SnapshotStatus"/>
    </Or>
    <Bug pattern="EI_EXPOSE_REP,EI_EXPOSE_REP2" />
  </Match>
  <Match>
    <Package name="org.apache.hadoop.hdfs.protocol.proto" />
    <Bug pattern="SE_BAD_FIELD,MS_SHOULD_BE_FINAL,UCF_USELESS_CONTROL_FLOW" />
  </Match>
  <Match>
    <Class name="org.apache.hadoop.hdfs.shortcircuit.DfsClientShmManager$EndpointShmManager" />
    <Method name="allocSlot" />
    <Bug pattern="UL_UNRELEASED_LOCK_EXCEPTION_PATH" />
  </Match>
  <Match>
    <Class name="org.apache.hadoop.hdfs.shortcircuit.DfsClientShmManager$EndpointShmManager" />
    <Method name="allocSlot" />
    <Bug pattern="UL_UNRELEASED_LOCK" />
  </Match>
  <Match>
    <Class name="org.apache.hadoop.hdfs.DFSInputStream"/>
    <Field name="tcpReadsDisabledForTesting"/>
    <Bug pattern="MS_SHOULD_BE_FINAL"/>
  </Match>

  <!--
    ResponseProccessor is thread that is designed to catch RuntimeException.
  -->
  <Match>
    <Class name="org.apache.hadoop.hdfs.DataStreamer$ResponseProcessor" />
    <Method name="run" />
    <Bug pattern="REC_CATCH_EXCEPTION" />
  </Match>

  <!--
    We use a separate lock to guard cachingStrategy in order to separate
    locks for p-reads from seek + read invocations.
  -->
  <Match>
    <Class name="org.apache.hadoop.hdfs.DFSInputStream" />
    <Field name="cachingStrategy" />
    <Bug pattern="IS2_INCONSISTENT_SYNC" />
  </Match>

  <!-- BlockLocations are user-facing, but LocatedBlocks are not. -->
  <Match>
    <Class name="org.apache.hadoop.hdfs.protocol.HdfsLocatedFileStatus" />
    <Field name="hdfsloc" />
    <Bug pattern="SE_TRANSIENT_FIELD_NOT_RESTORED" />
  </Match>

  <!-- Hdfs*FileStatus are internal types. This "internal" state is not sensitive. -->
  <Match>
    <Class name="org.apache.hadoop.hdfs.protocol.HdfsNamedFileStatus" />
    <Method name="getLocalNameInBytes" />
    <Bug pattern="EI_EXPOSE_REP" />
  </Match>
  <Match>
    <Class name="org.apache.hadoop.hdfs.protocol.HdfsNamedFileStatus" />
    <Method name="getSymlinkInBytes" />
    <Bug pattern="EI_EXPOSE_REP" />
  </Match>
  <Match>
    <Class name="org.apache.hadoop.hdfs.protocol.HdfsLocatedFileStatus" />
    <Method name="getLocalNameInBytes" />
    <Bug pattern="EI_EXPOSE_REP" />
  </Match>
  <Match>
    <Class name="org.apache.hadoop.hdfs.protocol.HdfsLocatedFileStatus" />
    <Method name="getSymlinkInBytes" />
    <Bug pattern="EI_EXPOSE_REP" />
  </Match>

</FindBugsFilter>