Program: 153217
Project: 153217
Buggy source:
private void subexecute(JobExecutionContext context) throws Exception {
  LOGGER.info("String_Node_Str" + context.getJobDetail().getName() + "String_Node_Str"+ context.getJobDetail().getFullName()+ "String_Node_Str");
  JobDataMap jobDataMap=context.getJobDetail().getJobDataMap();
  Repository repos=(Repository)jobDataMap.get(JobDataNames.REPOSITORY);
  RepositoryConfiguration reposConfig=(RepositoryConfiguration)jobDataMap.get(JobDataNames.REPOSITORYCONFIGURATION);
  String baseDir=(String)jobDataMap.get(JobDataNames.BASEDIR);
  LOGGER.info("String_Node_Str" + baseDir + "String_Node_Str"+ repos.getUrl()+ "String_Node_Str"+ reposConfig.getRepositoryName());
  jobConfig=new RepositoryJobConfiguration(baseDir + File.separator + reposConfig.getRepositoryName()+ "String_Node_Str",reposConfig);
  String jobIndexName=baseDir + File.separator + "String_Node_Str"+ reposConfig.getRepositoryName();
  String resultIndexName=baseDir + File.separator + reposConfig.getResultIndex();
  LOGGER.info("String_Node_Str" + repos.getRepository().getLatestRevision() + "String_Node_Str"+ jobConfig.getConfigData().getFromrev());
  long fromRev=Long.parseLong(jobConfig.getConfigData().getFromrev());
  if (repos.getRepository().getLatestRevision() > fromRev) {
    long startRev=0;
    if (jobConfig.isNewCreated()) {
      LOGGER.info("String_Node_Str");
      startRev=jobConfig.getReposConfig().getFromRev();
    }
 else {
      LOGGER.info("String_Node_Str");
      startRev+=jobConfig.getReposConfig().getFromRev();
    }
    long endRev=repos.getRepository().getLatestRevision();
    scanRepos.setRepository(repos);
    scanRepos.setStartRevision(startRev);
    scanRepos.setEndRevision(endRev);
    scanRepos.setName(reposConfig.getRepositoryName());
    Index index=new Index();
    index.setCreate(true);
    IndexWriter indexWriter=index.createIndexWriter(jobIndexName);
    scanRepos.scan(indexWriter);
    try {
      indexWriter.optimize();
      indexWriter.close();
    }
 catch (    CorruptIndexException e) {
      LOGGER.error("String_Node_Str" + e);
    }
catch (    IOException e) {
      LOGGER.error("String_Node_Str" + e);
    }
    IndexHelper.mergeIndex(resultIndexName,jobIndexName);
    jobConfig.getConfigData().setFromrev(Long.toString(endRev));
    LOGGER.info("String_Node_Str" + jobConfig.getConfigData().getFromrev() + "String_Node_Str"+ jobConfig.getConfigData().getTorev());
    jobConfig.save();
  }
 else {
    LOGGER.info("String_Node_Str");
  }
  LOGGER.info("String_Node_Str");
}

Fixed version (ground truth):
private void subexecute(JobExecutionContext context) throws Exception {
  LOGGER.info("String_Node_Str" + context.getJobDetail().getName() + "String_Node_Str"+ context.getJobDetail().getFullName()+ "String_Node_Str");
  JobDataMap jobDataMap=context.getJobDetail().getJobDataMap();
  Repository repos=(Repository)jobDataMap.get(JobDataNames.REPOSITORY);
  RepositoryConfiguration reposConfig=(RepositoryConfiguration)jobDataMap.get(JobDataNames.REPOSITORYCONFIGURATION);
  String baseDir=(String)jobDataMap.get(JobDataNames.BASEDIR);
  LOGGER.info("String_Node_Str" + baseDir + "String_Node_Str"+ repos.getUrl()+ "String_Node_Str"+ reposConfig.getRepositoryName());
  jobConfig=new RepositoryJobConfiguration(baseDir + File.separator + reposConfig.getRepositoryName()+ "String_Node_Str",reposConfig);
  String jobIndexName=baseDir + File.separator + "String_Node_Str"+ reposConfig.getRepositoryName();
  String resultIndexName=baseDir + File.separator + reposConfig.getResultIndex();
  LOGGER.info("String_Node_Str" + repos.getRepository().getLatestRevision() + "String_Node_Str"+ jobConfig.getConfigData().getFromrev());
  long fromRev=Long.parseLong(jobConfig.getConfigData().getFromrev());
  if (repos.getRepository().getLatestRevision() > fromRev) {
    long startRev=0;
    if (jobConfig.isNewCreated()) {
      LOGGER.info("String_Node_Str");
      startRev=jobConfig.getReposConfig().getFromRev();
    }
 else {
      LOGGER.info("String_Node_Str");
      startRev+=jobConfig.getReposConfig().getFromRev();
    }
    long endRev=repos.getRepository().getLatestRevision();
    scanRepos.setRepository(repos);
    scanRepos.setStartRevision(startRev);
    scanRepos.setEndRevision(endRev);
    scanRepos.setName(reposConfig.getRepositoryName());
    Index index=new Index();
    index.setCreate(true);
    IndexWriter indexWriter=index.createIndexWriter(jobIndexName);
    scanRepos.scan(indexWriter);
    try {
      indexWriter.optimize();
      indexWriter.close();
    }
 catch (    CorruptIndexException e) {
      LOGGER.error("String_Node_Str",e);
    }
catch (    IOException e) {
      LOGGER.error("String_Node_Str",e);
    }
    IndexHelper.mergeIndex(resultIndexName,jobIndexName);
    jobConfig.getConfigData().setFromrev(Long.toString(endRev));
    LOGGER.info("String_Node_Str" + jobConfig.getConfigData().getFromrev() + "String_Node_Str"+ jobConfig.getConfigData().getTorev());
    jobConfig.save();
  }
 else {
    LOGGER.info("String_Node_Str");
  }
  LOGGER.info("String_Node_Str");
}