Program: 168242
Project: 168242
Buggy source:
private static double[] predict(BufferedReader input,DataOutputStream output,svm_model model,int predict_probability) throws IOException {
  int correct=0;
  int total=0;
  double error=0, pvalue=0;
  double sumv=0, sumy=0, sumvv=0, sumyy=0, sumvy=0;
  int svm_type=svm.svm_get_svm_type(model);
  int nr_class=svm.svm_get_nr_class(model);
  double[] prob_estimates=null;
  if (predict_probability == 1) {
    if (svm_type == svm_parameter.EPSILON_SVR || svm_type == svm_parameter.NU_SVR) {
      svm_predict.info("String_Node_Str" + svm.svm_get_svr_probability(model) + "String_Node_Str");
    }
 else {
      int[] labels=new int[nr_class];
      svm.svm_get_labels(model,labels);
      prob_estimates=new double[nr_class];
      output.writeBytes("String_Node_Str");
      for (int j=0; j < nr_class; j++)       output.writeBytes("String_Node_Str" + labels[j]);
      output.writeBytes("String_Node_Str");
    }
  }
  while (true) {
    String line=input.readLine();
    if (line == null)     break;
    StringTokenizer st=new StringTokenizer(line,"String_Node_Str");
    double target=atof(st.nextToken());
    int m=st.countTokens() / 2;
    svm_node[] x=new svm_node[m];
    for (int j=0; j < m; j++) {
      x[j]=new svm_node();
      x[j].index=atoi(st.nextToken());
      x[j].value=atof(st.nextToken());
    }
    double v;
    if (predict_probability == 1 && (svm_type == svm_parameter.C_SVC || svm_type == svm_parameter.NU_SVC)) {
      v=svm.svm_predict_probability(model,x,prob_estimates);
      output.writeBytes(v + "String_Node_Str");
      for (int j=0; j < nr_class; j++)       output.writeBytes(prob_estimates[j] + "String_Node_Str");
      output.writeBytes("String_Node_Str");
    }
 else {
      v=svm.svm_predict(model,x);
      output.writeBytes(v + "String_Node_Str");
    }
    if (v == target)     ++correct;
    error+=(v - target) * (v - target);
    sumv+=v;
    sumy+=target;
    sumvv+=v * v;
    sumyy+=target * target;
    sumvy+=v * target;
    ++total;
  }
  if (svm_type == svm_parameter.EPSILON_SVR || svm_type == svm_parameter.NU_SVR) {
    svm_predict.info("String_Node_Str" + error / total + "String_Node_Str");
    svm_predict.info("String_Node_Str" + ((total * sumvy - sumv * sumy) * (total * sumvy - sumv * sumy)) / ((total * sumvv - sumv * sumv) * (total * sumyy - sumy * sumy)) + "String_Node_Str");
  }
 else {
    svm_predict.info("String_Node_Str" + (double)correct / total * 100 + "String_Node_Str" + correct + "String_Node_Str" + total + "String_Node_Str");
    System.out.println(total + "String_Node_Str" + correct+ "String_Node_Str"+ (double)1 / nr_class + "String_Node_Str");
    BinomialTest btest=new BinomialTest();
    pvalue=btest.binomialTest(total,correct,(double)1 / nr_class,AlternativeHypothesis.TWO_SIDED);
  }
  return new double[]{correct,total,pvalue};
}

Fixed version (ground truth):
private static double[] predict(BufferedReader input,DataOutputStream output,svm_model model,int predict_probability) throws IOException {
  int correct=0;
  int total=0;
  double error=0, pvalue=0;
  double sumv=0, sumy=0, sumvv=0, sumyy=0, sumvy=0;
  int svm_type=svm.svm_get_svm_type(model);
  int nr_class=svm.svm_get_nr_class(model);
  double[] prob_estimates=null;
  if (predict_probability == 1) {
    if (svm_type == svm_parameter.EPSILON_SVR || svm_type == svm_parameter.NU_SVR) {
      svm_predict.info("String_Node_Str" + svm.svm_get_svr_probability(model) + "String_Node_Str");
    }
 else {
      int[] labels=new int[nr_class];
      svm.svm_get_labels(model,labels);
      prob_estimates=new double[nr_class];
      output.writeBytes("String_Node_Str");
      for (int j=0; j < nr_class; j++)       output.writeBytes("String_Node_Str" + labels[j]);
      output.writeBytes("String_Node_Str");
    }
  }
  while (true) {
    String line=input.readLine();
    if (line == null)     break;
    StringTokenizer st=new StringTokenizer(line,"String_Node_Str");
    double target=atof(st.nextToken());
    int m=st.countTokens() / 2;
    svm_node[] x=new svm_node[m];
    for (int j=0; j < m; j++) {
      x[j]=new svm_node();
      x[j].index=atoi(st.nextToken());
      x[j].value=atof(st.nextToken());
    }
    double v;
    if (predict_probability == 1 && (svm_type == svm_parameter.C_SVC || svm_type == svm_parameter.NU_SVC)) {
      v=svm.svm_predict_probability(model,x,prob_estimates);
      output.writeBytes(v + "String_Node_Str");
      for (int j=0; j < nr_class; j++)       output.writeBytes(prob_estimates[j] + "String_Node_Str");
      output.writeBytes("String_Node_Str");
    }
 else {
      v=svm.svm_predict(model,x);
      output.writeBytes(v + "String_Node_Str");
    }
    if (v == target)     ++correct;
    error+=(v - target) * (v - target);
    sumv+=v;
    sumy+=target;
    sumvv+=v * v;
    sumyy+=target * target;
    sumvy+=v * target;
    ++total;
  }
  if (svm_type == svm_parameter.EPSILON_SVR || svm_type == svm_parameter.NU_SVR) {
    svm_predict.info("String_Node_Str" + error / total + "String_Node_Str");
    svm_predict.info("String_Node_Str" + ((total * sumvy - sumv * sumy) * (total * sumvy - sumv * sumy)) / ((total * sumvv - sumv * sumv) * (total * sumyy - sumy * sumy)) + "String_Node_Str");
  }
 else {
    svm_predict.info("String_Node_Str" + (double)correct / total * 100 + "String_Node_Str" + correct + "String_Node_Str" + total + "String_Node_Str");
    System.out.println(total + "String_Node_Str" + correct+ "String_Node_Str"+ (double)1 / nr_class + "String_Node_Str");
    BinomialTest btest=new BinomialTest();
    pvalue=btest.binomialTest(total,correct,(double)0.5,AlternativeHypothesis.TWO_SIDED);
  }
  return new double[]{correct,total,pvalue};
}