<?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>

     <Match>
       <Class name="org.eclipse.jgit.internal.storage.pack.PackOutputStream" />
       <Method name="writeHeader" />
       <Bug pattern="NS_DANGEROUS_NON_SHORT_CIRCUIT" />
     </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>

     <Match>
       <Class name="org.eclipse.jgit.lib.Config" />
       <Method name="isMissing" />
       <Bug pattern="ES_COMPARING_PARAMETER_STRING_WITH_EQ"/>
     </Match>

     <Match>
       <Class name="org.eclipse.jgit.transport.PacketLineIn" />
       <Method name="isDelimiter" />
       <Bug pattern="ES_COMPARING_PARAMETER_STRING_WITH_EQ"/>
     </Match>

     <Match>
       <Class name="org.eclipse.jgit.transport.PacketLineIn" />
       <Method name="isEnd" />
       <Bug pattern="ES_COMPARING_PARAMETER_STRING_WITH_EQ"/>
     </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>

     <Match>
       <Class name="org.eclipse.jgit.ignore.IgnoreNode" />
       <Method name="checkIgnored" />
       <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>
