<?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 findbugs. 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">

  <!--  the javadoc states that the default character encoding is used  -->
  <!--  when converting a string into a byte[]                          -->
  <Match>
    <Class name="org.apache.commons.mail.util.MimeMessageUtils" />
    <Method name="createMimeMessage" params="javax.mail.Session, java.lang.String" returns="javax.mail.internet.MimeMessage" />
    <Bug pattern="DM_DEFAULT_ENCODING" />
  </Match>

  <!--  printStackTrace is supposed to use the default character encoding  -->
  <Match>
    <Class name="org.apache.commons.mail.EmailException" />
    <Method name="printStackTrace" params="java.io.PrintStream" returns="void" />
    <Bug pattern="DM_DEFAULT_ENCODING" />
  </Match>

  <!-- TODO Can any of these be done without breaking binary compatibility? -->
  <Match>
    <Class name="~.*" />
    <Or>
      <Bug pattern="EI_EXPOSE_REP" />
      <Bug pattern="EI_EXPOSE_REP2" />
    </Or>
  </Match>

</FindBugsFilter>
