Program: 113252
Project: 113252
Buggy source:
@Override protected void runInternal(GeogigCLI cli) throws InvalidParameterException, CommandFailedException, IOException {
  GeoGIG geogig=cli.getGeogig();
  IndexDatabase indexDatabase=geogig.getRepository().indexDatabase();
  if (indexDatabase.getIndex(tree,attribute).isPresent()) {
    throw new CommandFailedException("String_Node_Str");
  }
  Optional<RevFeatureType> featureTypeOpt=geogig.command(ResolveFeatureType.class).setRefSpec("String_Node_Str" + tree).call();
  if (!featureTypeOpt.isPresent()) {
    throw new CommandFailedException(String.format("String_Node_Str",tree));
  }
  RevFeatureType treeType=featureTypeOpt.get();
  boolean attributeFound=false;
  PropertyType attributeType=null;
  for (  PropertyDescriptor descriptor : treeType.descriptors()) {
    if (descriptor.getName().toString().equals(attribute)) {
      attributeFound=true;
      attributeType=descriptor.getType();
    }
  }
  if (!attributeFound) {
    throw new CommandFailedException(String.format("String_Node_Str",attribute));
  }
  if (!(attributeType instanceof GeometryType)) {
    throw new UnsupportedOperationException("String_Node_Str");
  }
  Index index=indexDatabase.createIndex(tree,attribute,IndexType.QUADTREE,null);
  if (indexHistory) {
    ImmutableList<Ref> branches=geogig.command(BranchListOp.class).setLocal(true).setRemotes(true).call();
    for (    Ref ref : branches) {
      Iterator<RevCommit> commits=geogig.command(LogOp.class).setUntil(ref.getObjectId()).call();
      while (commits.hasNext()) {
        RevCommit next=commits.next();
        createQuadTree(cli,next.getId().toString(),index);
      }
    }
  }
 else {
    createQuadTree(cli,"String_Node_Str",index);
  }
}

Fixed version (ground truth):
@Override protected void runInternal(GeogigCLI cli) throws InvalidParameterException, CommandFailedException, IOException {
  GeoGIG geogig=cli.getGeogig();
  IndexDatabase indexDatabase=geogig.getRepository().indexDatabase();
  if (indexDatabase.getIndex(tree,attribute).isPresent()) {
    throw new CommandFailedException("String_Node_Str");
  }
  Optional<RevFeatureType> featureTypeOpt=geogig.command(ResolveFeatureType.class).setRefSpec("String_Node_Str" + tree).call();
  if (!featureTypeOpt.isPresent()) {
    throw new CommandFailedException(String.format("String_Node_Str",tree));
  }
  RevFeatureType treeType=featureTypeOpt.get();
  boolean attributeFound=false;
  PropertyType attributeType=null;
  for (  PropertyDescriptor descriptor : treeType.descriptors()) {
    if (descriptor.getName().toString().equals(attribute)) {
      attributeFound=true;
      attributeType=descriptor.getType();
      break;
    }
  }
  if (!attributeFound) {
    throw new CommandFailedException(String.format("String_Node_Str",attribute));
  }
  if (!(attributeType instanceof GeometryType)) {
    throw new UnsupportedOperationException("String_Node_Str");
  }
  Index index=indexDatabase.createIndex(tree,attribute,IndexType.QUADTREE,null);
  if (indexHistory) {
    ImmutableList<Ref> branches=geogig.command(BranchListOp.class).setLocal(true).setRemotes(true).call();
    for (    Ref ref : branches) {
      Iterator<RevCommit> commits=geogig.command(LogOp.class).setUntil(ref.getObjectId()).call();
      while (commits.hasNext()) {
        RevCommit next=commits.next();
        createQuadTree(cli,next.getId().toString(),index);
      }
    }
  }
 else {
    createQuadTree(cli,"String_Node_Str",index);
  }
}