<!--
  Licensed 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. See accompanying LICENSE file.
-->
<FindBugsFilter>
  <Match>
    <Class name="~org\.apache\.tez\.dag\.history\.logging\.proto\.HistoryLoggerProtos\$KVPair"/>
    <Field name="unknownFields"/>
    <Bug pattern="SE_BAD_FIELD"/>
  </Match>

  <Match>
    <Class name="~org\.apache\.tez\.dag\.history\.logging\.proto\.HistoryLoggerProtos\$.*Proto"/>
    <Field name="unknownFields"/>
    <Bug pattern="SE_BAD_FIELD"/>
  </Match>

  <Match>
    <Class name="~org\.apache\.tez\.dag\.history\.logging\.proto\.HistoryLoggerProtos\$KVPair"/>
    <Field name="PARSER"/>
    <Bug pattern="MS_SHOULD_BE_FINAL"/>
  </Match>

  <Match>
    <Class name="~org\.apache\.tez\.dag\.history\.logging\.proto\.HistoryLoggerProtos\$.*Proto"/>
    <Field name="PARSER"/>
    <Bug pattern="MS_SHOULD_BE_FINAL"/>
  </Match>

  <Match>
    <Class name="~org\.apache\.tez\.dag\.history\.logging\.proto\.HistoryLoggerProtos\$KVPair\$Builder"/>
    <Method name="maybeForceBuilderInitialization"/>
    <Bug pattern="UCF_USELESS_CONTROL_FLOW"/>
  </Match>

  <Match>
    <Class name="~org\.apache\.tez\.dag\.history\.logging\.proto\.HistoryLoggerProtos\$.*Proto\$Builder"/>
    <Method name="maybeForceBuilderInitialization"/>
    <Bug pattern="UCF_USELESS_CONTROL_FLOW"/>
  </Match>
</FindBugsFilter>
