<?xml version="1.0"?>
<!--
   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.
-->

<!--
  This file contains some false positive bugs detected by spotbugs. Their
  false positive nature has been analyzed individually and they have been
  put here to instruct findbugs it must ignore them.
-->
<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/3.1.0/spotbugs/etc/findbugsfilter.xsd">

    <!-- https://github.com/spotbugs/spotbugs/issues/2710 -->
    <Match>
      <Class name="~.*" />
      <Bug pattern="CT_CONSTRUCTOR_THROW" />
    </Match>
    <!-- Reason: Initial commit. Need to refine -->
    <Match>
        <Class name="org.apache.commons.fileupload2.MultipartStream" />
        <Method name="readHeaders" />
        <Bug pattern="DM_DEFAULT_ENCODING" />
    </Match>
    <Match>
        <Class name="org.apache.commons.fileupload2.MultipartStream" />
        <Bug pattern="MS_PKGPROTECT" />
    </Match>
    <Match>
        <Class name="org.apache.commons.fileupload2.disk.DiskFileItem" />
        <Bug pattern="DM_DEFAULT_ENCODING" />
    </Match>
    <Match>
        <Class name="org.apache.commons.fileupload2.disk.DiskFileItem" />
        <Bug pattern="RV_RETURN_VALUE_IGNORED_BAD_PRACTICE" />
    </Match>
    <Match>
        <Class name="org.apache.commons.fileupload2.disk.DiskFileItem" />
        <Method name="getString" />
        <Bug pattern="DLS_DEAD_LOCAL_STORE" />
    </Match>
    <Match>
        <Class name="org.apache.commons.fileupload2.jaksrvlt.JakartaServletFileUpload " />
        <Bug pattern="NM_WRONG_PACKAGE" />
    </Match>
    <Match>
        <Class name="org.apache.commons.fileupload2.util.Streams" />
        <Method name="asString" />
        <Bug pattern="DM_DEFAULT_ENCODING" />
    </Match>
    <Match>
        <Bug pattern="EI_EXPOSE_REP,EI_EXPOSE_REP2" />
    </Match>
</FindBugsFilter>
