Program: 91235
Project: 91235
Buggy source:
/** 
 * {@inheritDoc}<p> Retrieve the git attributes for the current entry. <h4>Git attribute computation</h4> <ul> <li>Get the attributes matching the current path entry from the info file (see   {@link AttributesNodeProvider#getInfoAttributesNode()}).</li> <li>Completes the list of attributes using the .gitattributes files located on the current path (the further the directory that contains .gitattributes is from the path in question, the lower its precedence). For a checkin operation, it will look first on the working tree (if any). If there is no attributes file, it will fallback on the index. For a checkout operation, it will first use the index entry and then fallback on the working tree if none.</li> <li>In the end, completes the list of matching attributes using the global attribute file define in the configuration (see  {@link AttributesNodeProvider#getGlobalAttributesNode()})</li> </ul> <h4>Iterator constraints</h4> <p> In order to have a correct list of attributes for the current entry, this  {@link TreeWalk} requires to have at least one{@link AttributesNodeProvider} and a {@link DirCacheIterator} set up. An{@link AttributesNodeProvider} is used to retrieve the attributes fromthe info attributes file and the global attributes file. The {@link DirCacheIterator} is used to retrieve the .gitattributes filesstored in the index. A  {@link WorkingTreeIterator} can also be providedto access the local version of the .gitattributes files. If none is provided it will fallback on the  {@link DirCacheIterator}. </p>
 * @since 4.2
 */
@Override public Attributes getAttributes(){
  if (attrs != null)   return attrs;
  if (attributesNodeProvider == null) {
    throw new IllegalStateException("String_Node_Str");
  }
  try {
    if (attributesHandler == null) {
      attributesHandler=new AttributesHandler(this);
    }
    attrs=attributesHandler.getAttributes();
    return attrs;
  }
 catch (  IOException e) {
    throw new JGitInternalException("String_Node_Str",e);
  }
}

Fixed version (ground truth):
/** 
 * {@inheritDoc}<p> Retrieve the git attributes for the current entry. <h3>Git attribute computation</h3> <ul> <li>Get the attributes matching the current path entry from the info file (see   {@link AttributesNodeProvider#getInfoAttributesNode()}).</li> <li>Completes the list of attributes using the .gitattributes files located on the current path (the further the directory that contains .gitattributes is from the path in question, the lower its precedence). For a checkin operation, it will look first on the working tree (if any). If there is no attributes file, it will fallback on the index. For a checkout operation, it will first use the index entry and then fallback on the working tree if none.</li> <li>In the end, completes the list of matching attributes using the global attribute file define in the configuration (see  {@link AttributesNodeProvider#getGlobalAttributesNode()})</li> </ul> <h3>Iterator constraints</h3> <p> In order to have a correct list of attributes for the current entry, this  {@link TreeWalk} requires to have at least one{@link AttributesNodeProvider} and a {@link DirCacheIterator} set up. An{@link AttributesNodeProvider} is used to retrieve the attributes fromthe info attributes file and the global attributes file. The {@link DirCacheIterator} is used to retrieve the .gitattributes filesstored in the index. A  {@link WorkingTreeIterator} can also be providedto access the local version of the .gitattributes files. If none is provided it will fallback on the  {@link DirCacheIterator}. </p>
 * @since 4.2
 */
@Override public Attributes getAttributes(){
  if (attrs != null)   return attrs;
  if (attributesNodeProvider == null) {
    throw new IllegalStateException("String_Node_Str");
  }
  try {
    if (attributesHandler == null) {
      attributesHandler=new AttributesHandler(this);
    }
    attrs=attributesHandler.getAttributes();
    return attrs;
  }
 catch (  IOException e) {
    throw new JGitInternalException("String_Node_Str",e);
  }
}