Program: 63042
Project: 63042
Buggy source:
@Override public void run(){
  User user=getUser();
  for (  AnnotationLayer layer : annoService.listAnnotationLayer(getProject())) {
    if (!layer.isEnabled()) {
      continue;
    }
    List<Recommender> recommenders=recommendationService.listRecommenders(layer);
    if (recommenders == null || recommenders.isEmpty()) {
      log.debug("String_Node_Str",user.getUsername(),layer.getUiName());
      continue;
    }
    List<Recommender> activeRecommenders=new ArrayList<>();
    for (    Recommender recommender : recommenders) {
      try {
        long start=System.currentTimeMillis();
        ClassificationTool<?> ct=recommendationService.getTool(recommender,recommendationService.getMaxSuggestions(user));
        if (ct == null || !recommender.isEnabled()) {
          continue;
        }
        if (recommender.isAlwaysSelected()) {
          log.info("String_Node_Str",user.getUsername(),ct.getId());
          activeRecommenders.add(recommender);
          continue;
        }
        log.info("String_Node_Str",user.getUsername(),recommender.getName());
        EvaluationConfiguration suiteConf=EvaluationHelper.getTrainingSuiteConfiguration("String_Node_Str",documentService,getProject());
        suiteConf.setFeature(ct.getFeature());
        EvaluationHelper.customizeConfiguration(ct,"String_Node_Str",documentService,layer.getProject());
        ExtendedResult result=evaluate(suiteConf,ct,documentService.listSourceDocuments(layer.getProject()));
        if (result == null || result.getFscore() < 0) {
          log.info("String_Node_Str",user.getUsername(),recommender.getName());
          continue;
        }
        Double threshold=recommender.getThreshold();
        if (result.getFscore() >= threshold) {
          activeRecommenders.add(recommender);
          log.info("String_Node_Str",user.getUsername(),recommender.getName(),result.getFscore(),threshold);
        }
 else {
          log.info("String_Node_Str",user.getUsername(),recommender.getName(),result.getFscore(),threshold);
        }
        appEventPublisher.publishEvent(new RecommenderEvaluationResultEvent(this,recommender,user.getUsername(),result,System.currentTimeMillis() - start));
      }
 catch (      Throwable e) {
        log.error("String_Node_Str",user.getUsername(),recommender.getName(),e);
      }
    }
    recommendationService.setActiveRecommenders(user,layer,activeRecommenders);
  }
}

Fixed version (ground truth):
@Override public void run(){
  User user=getUser();
  for (  AnnotationLayer layer : annoService.listAnnotationLayer(getProject())) {
    if (!layer.isEnabled()) {
      continue;
    }
    List<Recommender> recommenders=recommendationService.listRecommenders(layer);
    if (recommenders == null || recommenders.isEmpty()) {
      log.debug("String_Node_Str",user.getUsername(),layer.getUiName());
      continue;
    }
    List<Recommender> activeRecommenders=new ArrayList<>();
    for (    Recommender recommender : recommenders) {
      try {
        long start=System.currentTimeMillis();
        ClassificationTool<?> ct=recommendationService.getTool(recommender,recommendationService.getMaxSuggestions(user));
        if (ct == null || !recommender.isEnabled()) {
          continue;
        }
        if (recommender.isAlwaysSelected() || !ct.isEvaluable()) {
          log.info("String_Node_Str",user.getUsername(),ct.getId(),recommender.isAlwaysSelected(),ct.isEvaluable());
          activeRecommenders.add(recommender);
          continue;
        }
        log.info("String_Node_Str",user.getUsername(),recommender.getName());
        EvaluationConfiguration suiteConf=EvaluationHelper.getTrainingSuiteConfiguration("String_Node_Str",documentService,getProject());
        suiteConf.setFeature(ct.getFeature());
        EvaluationHelper.customizeConfiguration(ct,"String_Node_Str",documentService,layer.getProject());
        ExtendedResult result=evaluate(suiteConf,ct,documentService.listSourceDocuments(layer.getProject()));
        if (result == null || result.getFscore() < 0) {
          log.info("String_Node_Str",user.getUsername(),recommender.getName());
          continue;
        }
        Double threshold=recommender.getThreshold();
        if (result.getFscore() >= threshold) {
          activeRecommenders.add(recommender);
          log.info("String_Node_Str",user.getUsername(),recommender.getName(),result.getFscore(),threshold);
        }
 else {
          log.info("String_Node_Str",user.getUsername(),recommender.getName(),result.getFscore(),threshold);
        }
        appEventPublisher.publishEvent(new RecommenderEvaluationResultEvent(this,recommender,user.getUsername(),result,System.currentTimeMillis() - start));
      }
 catch (      Throwable e) {
        log.error("String_Node_Str",user.getUsername(),recommender.getName(),e);
      }
    }
    recommendationService.setActiveRecommenders(user,layer,activeRecommenders);
  }
}