Program: 32972
Project: 32972
Buggy source:
public static BMMClassifier loadBMM(Config config,MultiLabelClfDataSet trainSet,MultiLabelClfDataSet testSet) throws Exception {
  int numClusters=config.getInt("String_Node_Str");
  String output=config.getString("String_Node_Str");
  String modelName=config.getString("String_Node_Str");
  BMMClassifier bmmClassifier;
  if (config.getBoolean("String_Node_Str")) {
    bmmClassifier=BMMClassifier.deserialize(new File(output,modelName));
  }
 else {
    bmmClassifier=BMMClassifier.getBuilder().setNumClasses(trainSet.getNumClasses()).setNumFeatures(trainSet.getNumFeatures()).setNumClusters(numClusters).setMultiClassClassifierType("String_Node_Str").setBinaryClassifierType("String_Node_Str").build();
    bmmClassifier.setPredictMode(config.getString("String_Node_Str"));
    bmmClassifier.setNumSample(config.getInt("String_Node_Str"));
    bmmClassifier.setAllowEmpty(config.getBoolean("String_Node_Str"));
    MultiLabel[] trainPredict;
    MultiLabel[] testPredict;
    if (config.getBoolean("String_Node_Str")) {
      System.out.println("String_Node_Str");
      BMMOptimizer optimizer=getOptimizer(config,bmmClassifier,trainSet);
      BMMInitializer.initialize(bmmClassifier,trainSet,optimizer);
      System.out.println("String_Node_Str");
    }
    trainPredict=bmmClassifier.predict(trainSet);
    testPredict=bmmClassifier.predict(testSet);
    System.out.print("String_Node_Str" + Accuracy.accuracy(trainSet.getMultiLabels(),trainPredict) + "String_Node_Str");
    System.out.print("String_Node_Str" + Overlap.overlap(trainSet.getMultiLabels(),trainPredict) + "String_Node_Str");
    System.out.print("String_Node_Str" + Accuracy.accuracy(testSet.getMultiLabels(),testPredict) + "String_Node_Str");
    System.out.println("String_Node_Str" + Overlap.overlap(testSet.getMultiLabels(),testPredict) + "String_Node_Str");
  }
  return bmmClassifier;
}

Fixed version (ground truth):
public static BMMClassifier loadBMM(Config config,MultiLabelClfDataSet trainSet,MultiLabelClfDataSet testSet) throws Exception {
  int numClusters=config.getInt("String_Node_Str");
  String output=config.getString("String_Node_Str");
  String modelName=config.getString("String_Node_Str");
  BMMClassifier bmmClassifier;
  if (config.getBoolean("String_Node_Str")) {
    bmmClassifier=BMMClassifier.deserialize(new File(output,modelName));
  }
 else {
    bmmClassifier=BMMClassifier.getBuilder().setNumClasses(trainSet.getNumClasses()).setNumFeatures(trainSet.getNumFeatures()).setNumClusters(numClusters).setMultiClassClassifierType(config.getString("String_Node_Str")).setBinaryClassifierType(config.getString("String_Node_Str")).build();
    bmmClassifier.setPredictMode(config.getString("String_Node_Str"));
    bmmClassifier.setNumSample(config.getInt("String_Node_Str"));
    bmmClassifier.setAllowEmpty(config.getBoolean("String_Node_Str"));
    MultiLabel[] trainPredict;
    MultiLabel[] testPredict;
    if (config.getBoolean("String_Node_Str")) {
      System.out.println("String_Node_Str");
      BMMOptimizer optimizer=getOptimizer(config,bmmClassifier,trainSet);
      BMMInitializer.initialize(bmmClassifier,trainSet,optimizer);
      System.out.println("String_Node_Str");
    }
    trainPredict=bmmClassifier.predict(trainSet);
    testPredict=bmmClassifier.predict(testSet);
    System.out.print("String_Node_Str" + Accuracy.accuracy(trainSet.getMultiLabels(),trainPredict) + "String_Node_Str");
    System.out.print("String_Node_Str" + Overlap.overlap(trainSet.getMultiLabels(),trainPredict) + "String_Node_Str");
    System.out.print("String_Node_Str" + Accuracy.accuracy(testSet.getMultiLabels(),testPredict) + "String_Node_Str");
    System.out.println("String_Node_Str" + Overlap.overlap(testSet.getMultiLabels(),testPredict) + "String_Node_Str");
  }
  return bmmClassifier;
}