Program: 33046
Project: 33046
Buggy source:
static void train(Config config) throws Exception {
  String archive=config.getString("String_Node_Str");
  String modelName=config.getString("String_Node_Str");
  StopWatch stopWatch=new StopWatch();
  stopWatch.start();
  MultiLabelClfDataSet dataSet=loadTrainData(config);
  System.out.println("String_Node_Str");
  MultiLabelClfDataSet testSet=loadTestData(config);
  System.out.println("String_Node_Str");
  System.out.println(dataSet.getMetaInfo());
  System.out.println("String_Node_Str");
  List<MultiLabel> assignments=DataSetUtil.gatherLabels(dataSet).stream().collect(Collectors.toList());
  System.out.println("String_Node_Str" + assignments.size() + "String_Node_Str");
  System.out.println("String_Node_Str");
  MLLogisticRegression mlLogisticRegression=new MLLogisticRegression(dataSet.getNumClasses(),dataSet.getNumFeatures(),assignments);
  for (int j=0; j < dataSet.getNumFeatures(); j++) {
    mlLogisticRegression.setFeatureName(j,dataSet.getFeatureSetting(j).getFeatureName());
  }
  mlLogisticRegression.setFeatureExtraction(false);
  System.out.println("String_Node_Str");
  System.out.println("String_Node_Str");
  MLLogisticLoss function=new MLLogisticLoss(mlLogisticRegression,dataSet,config.getDouble("String_Node_Str"));
  System.out.println("String_Node_Str");
  System.out.println("String_Node_Str");
  LBFGS lbfgs=new LBFGS(function);
  lbfgs.setEpsilon(config.getDouble("String_Node_Str"));
  lbfgs.setHistory(5);
  LinkedList<Double> valueQueue=new LinkedList<>();
  valueQueue.add(function.getValue(function.getParameters()));
  System.out.println("String_Node_Str");
  int iteration=0;
  System.out.println("String_Node_Str" + iteration);
  lbfgs.iterate();
  valueQueue.add(function.getValue(function.getParameters()));
  iteration+=1;
  while (true) {
    System.out.println("String_Node_Str" + iteration);
    System.out.println("String_Node_Str" + valueQueue.getLast());
    System.out.println("String_Node_Str" + Accuracy.accuracy(mlLogisticRegression,dataSet));
    System.out.println("String_Node_Str" + Accuracy.accuracy(mlLogisticRegression,testSet));
    if (Math.abs(valueQueue.getFirst() - valueQueue.getLast()) < config.getDouble("String_Node_Str")) {
      break;
    }
    lbfgs.iterate();
    valueQueue.remove();
    valueQueue.add(function.getValue(function.getParameters()));
    iteration+=1;
  }
  File serializedModel=new File(archive,modelName);
  mlLogisticRegression.serialize(serializedModel);
  System.out.println("String_Node_Str" + stopWatch);
  System.out.println("String_Node_Str" + Accuracy.accuracy(mlLogisticRegression,dataSet));
  System.out.println("String_Node_Str" + Overlap.overlap(mlLogisticRegression,dataSet));
}

Fixed version (ground truth):
static void train(Config config) throws Exception {
  String archive=config.getString("String_Node_Str");
  String modelName=config.getString("String_Node_Str");
  StopWatch stopWatch=new StopWatch();
  stopWatch.start();
  MultiLabelClfDataSet dataSet=loadTrainData(config);
  System.out.println("String_Node_Str");
  MultiLabelClfDataSet testSet=loadTestData(config);
  System.out.println("String_Node_Str");
  System.out.println(dataSet.getMetaInfo());
  System.out.println("String_Node_Str");
  List<MultiLabel> assignments=DataSetUtil.gatherLabels(dataSet).stream().collect(Collectors.toList());
  System.out.println("String_Node_Str" + assignments.size() + "String_Node_Str");
  System.out.println("String_Node_Str");
  MLLogisticRegression mlLogisticRegression=new MLLogisticRegression(dataSet.getNumClasses(),dataSet.getNumFeatures(),assignments);
  for (int j=0; j < dataSet.getNumFeatures(); j++) {
    mlLogisticRegression.setFeatureName(j,dataSet.getFeatureSetting(j).getFeatureName());
  }
  mlLogisticRegression.setFeatureExtraction(false);
  System.out.println("String_Node_Str");
  System.out.println("String_Node_Str");
  MLLogisticLoss function=new MLLogisticLoss(mlLogisticRegression,dataSet,config.getDouble("String_Node_Str"));
  System.out.println("String_Node_Str");
  System.out.println("String_Node_Str");
  LBFGS lbfgs=new LBFGS(function);
  lbfgs.setEpsilon(config.getDouble("String_Node_Str"));
  lbfgs.setHistory(5);
  LinkedList<Double> valueQueue=new LinkedList<>();
  valueQueue.add(function.getValue(function.getParameters()));
  System.out.println("String_Node_Str");
  int iteration=0;
  System.out.println("String_Node_Str" + iteration);
  lbfgs.iterate();
  valueQueue.add(function.getValue(function.getParameters()));
  iteration+=1;
  while (true) {
    System.out.println("String_Node_Str" + iteration);
    System.out.println("String_Node_Str" + valueQueue.getLast());
    System.out.println("String_Node_Str" + Accuracy.accuracy(mlLogisticRegression,dataSet));
    System.out.println("String_Node_Str" + Overlap.overlap(mlLogisticRegression,dataSet));
    System.out.println("String_Node_Str" + Accuracy.accuracy(mlLogisticRegression,testSet));
    System.out.println("String_Node_Str" + Overlap.overlap(mlLogisticRegression,testSet));
    if (Math.abs(valueQueue.getFirst() - valueQueue.getLast()) < config.getDouble("String_Node_Str")) {
      break;
    }
    lbfgs.iterate();
    valueQueue.remove();
    valueQueue.add(function.getValue(function.getParameters()));
    iteration+=1;
  }
  File serializedModel=new File(archive,modelName);
  mlLogisticRegression.serialize(serializedModel);
  System.out.println("String_Node_Str" + stopWatch);
  System.out.println("String_Node_Str" + Accuracy.accuracy(mlLogisticRegression,dataSet));
  System.out.println("String_Node_Str" + Overlap.overlap(mlLogisticRegression,dataSet));
}