Program: 100741
Project: 100741
Buggy source:
private void parseAndValidateInput(final AbstractPipelineInput input) throws DITAOTException {
  final String baseDir=input.getAttribute(ANT_INVOKER_PARAM_BASEDIR);
  String output=input.getAttribute(ANT_INVOKER_EXT_PARAM_OUTPUT);
  if (!new File(output).isAbsolute()) {
    output=new File(baseDir,output).getAbsolutePath();
  }
  final String encoding=input.getAttribute(ANT_INVOKER_EXT_PARAM_ENCODING);
  final String indextype=input.getAttribute(ANT_INVOKER_EXT_PARAM_INDEXTYPE);
  final String indexclass=input.getAttribute(ANT_INVOKER_EXT_PARAM_INDEXCLASS);
  inputMap=input.getAttribute(ANT_INVOKER_PARAM_INPUTMAP);
  targetExt=input.getAttribute(ANT_INVOKER_EXT_PARAM_TARGETEXT);
  topicList=new ArrayList<String>();
  for (  final FileInfo f : job.getFileInfo()) {
    if (ATTR_FORMAT_VALUE_DITA.equals(f.format) && !f.isResourceOnly) {
      topicList.add(f.file.getPath());
    }
  }
  ditamapList=new ArrayList<String>();
  for (  final FileInfo f : job.getFileInfo()) {
    if (ATTR_FORMAT_VALUE_DITAMAP.equals(f.format) && !f.isResourceOnly) {
      ditamapList.add(f.file.getPath());
    }
  }
  final int lastIndexOfDot=output.lastIndexOf("String_Node_Str");
  final String outputRoot=(lastIndexOfDot == -1) ? output : output.substring(0,lastIndexOfDot);
  indexTermCollection.setOutputFileRoot(outputRoot);
  indexTermCollection.setIndexType(indextype);
  indexTermCollection.setIndexClass(indexclass);
  indexTermCollection.setPipelineHashIO((PipelineHashIO)input);
  if (encoding != null && encoding.trim().length() > 0) {
    IndexTerm.setTermLocale(StringUtils.getLocale(encoding));
  }
}

Fixed version (ground truth):
private void parseAndValidateInput(final AbstractPipelineInput input){
  final String baseDir=input.getAttribute(ANT_INVOKER_PARAM_BASEDIR);
  String output=input.getAttribute(ANT_INVOKER_EXT_PARAM_OUTPUT);
  if (!new File(output).isAbsolute()) {
    output=new File(baseDir,output).getAbsolutePath();
  }
  final String encoding=input.getAttribute(ANT_INVOKER_EXT_PARAM_ENCODING);
  final String indextype=input.getAttribute(ANT_INVOKER_EXT_PARAM_INDEXTYPE);
  final String indexclass=input.getAttribute(ANT_INVOKER_EXT_PARAM_INDEXCLASS);
  inputMap=input.getAttribute(ANT_INVOKER_PARAM_INPUTMAP);
  targetExt=input.getAttribute(ANT_INVOKER_EXT_PARAM_TARGETEXT);
  topicList=new ArrayList<String>();
  for (  final FileInfo f : job.getFileInfo()) {
    if (ATTR_FORMAT_VALUE_DITA.equals(f.format) && !f.isResourceOnly) {
      topicList.add(f.file.getPath());
    }
  }
  ditamapList=new ArrayList<String>();
  for (  final FileInfo f : job.getFileInfo()) {
    if (ATTR_FORMAT_VALUE_DITAMAP.equals(f.format) && !f.isResourceOnly) {
      ditamapList.add(f.file.getPath());
    }
  }
  final int lastIndexOfDot=output.lastIndexOf("String_Node_Str");
  final String outputRoot=(lastIndexOfDot == -1) ? output : output.substring(0,lastIndexOfDot);
  indexTermCollection.setOutputFileRoot(outputRoot);
  indexTermCollection.setIndexType(indextype);
  indexTermCollection.setIndexClass(indexclass);
  indexTermCollection.setPipelineHashIO((PipelineHashIO)input);
  if (encoding != null && encoding.trim().length() > 0) {
    IndexTerm.setTermLocale(StringUtils.getLocale(encoding));
  }
}