<?xml version="1.0" encoding="UTF-8" ?>
<FindBugsFilter>
     <!-- Silence PackFile.mmap calls GC, we need to force it to remove stale
          memory mapped segments if the JVM heap is out of address space.
       -->
     <Match>
       <Class name="org.eclipse.jgit.storage.file.PackFile" />
       <Method name="mmap" />
       <Bug pattern="DM_GC" />
     </Match>

     <!-- Silence ignoring return value of mkdirs -->
     <Match>
       <Class name="org.eclipse.jgit.dircache.DirCacheCheckout" />
       <Method name="checkout" />
       <Bug pattern="RV_RETURN_VALUE_IGNORED_BAD_PRACTICE" />
     </Match>

	   <!-- Silence the construction of our magic String instance.
	     -->
     <Match>
	 <Class name="org.eclipse.jgit.lib.Config" />
	 <Bug pattern="DM_STRING_VOID_CTOR"/>
     </Match>

     <!-- Silence comparison of string by == or !=.  This class is built
          only to provide compare of string values, we won't make a mistake
          here with == assuming .equals() style equality.
       -->
     <Match>
       <Class name="org.eclipse.jgit.util.StringUtils" />
       <Bug pattern="ES_COMPARING_PARAMETER_STRING_WITH_EQ" />
     </Match>

     <!-- We want complete control over clone behavior and
          don't want to use Object's clone implementation.
       -->
     <Match>
       <Bug pattern="CN_IMPLEMENTS_CLONE_BUT_NOT_CLONEABLE" />
     </Match>

     <!-- blockIndex is initialized to 0 automatically.
       -->
     <Match>
       <Class name="org.eclipse.jgit.util.TemporaryBuffer$BlockInputStream" />
       <Bug pattern="UR_UNINIT_READ" />
     </Match>

     <!-- Silence returning null for Boolean return type -->
     <Match>
       <Class name="org.eclipse.jgit.util.StringUtils" />
       <Method name="toBooleanOrNull" />
       <Bug pattern="NP_BOOLEAN_RETURN_NULL" />
     </Match>

     <!-- Transport initialization works like this -->
     <Match>
       <Class name="org.eclipse.jgit.transport.Transport" />
       <Bug pattern="IC_SUPERCLASS_USES_SUBCLASS_DURING_INITIALIZATION" />
     </Match>
</FindBugsFilter>
