<?xml version="1.0" encoding="UTF-8"?>
<!--
  ~ 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>

  <!--
  OpenStack Swift FS module -closes streams in a different method
  from where they are opened.
  -->
  <Match>
    <Class name="org.apache.hadoop.fs.swift.snative.SwiftNativeOutputStream"/>
    <Method name="uploadFileAttempt"/>
    <Bug pattern="OBL_UNSATISFIED_OBLIGATION"/>
    <Bug code="OBL"/>
  </Match>
  <Match>
    <Class name="org.apache.hadoop.fs.swift.snative.SwiftNativeOutputStream"/>
    <Method name="uploadFilePartAttempt"/>
    <Bug pattern="OBL_UNSATISFIED_OBLIGATION"/>
    <Bug code="OBL"/>
  </Match>

</FindBugsFilter>
