Program: 131759
Project: 131759
Buggy source:
private DmvSolution updateBounds(CommandLine cmd,SentenceCollection sentences,DmvRelaxation dw){
  if (cmd.hasOption("String_Node_Str")) {
    InitSol opt=InitSol.getById(Command.getOptionValue(cmd,"String_Node_Str","String_Node_Str"));
    IndexedDmvModel idm=dw.getIdm();
    DmvSolution initBoundsSol;
    if (opt == InitSol.VITERBI_EM) {
      initBoundsSol=DmvDantzigWolfeRelaxationTest.getInitFeasSol(sentences);
    }
 else     if (opt == InitSol.GOLD) {
      throw new RuntimeException("String_Node_Str");
    }
 else     if (opt == InitSol.RANDOM || opt == InitSol.UNIFORM) {
      DmvWeightGenerator weightGen;
      if (opt == InitSol.RANDOM) {
        Prng.seed(System.currentTimeMillis());
        weightGen=new DmvRandomWeightGenerator(0.00001);
      }
 else {
        weightGen=new DmvUniformWeightGenerator();
      }
      DmvModelFactory modelFactory=new DmvModelFactory(weightGen);
      DmvModel randModel=(DmvModel)modelFactory.getInstance(sentences);
      double[][] logProbs=idm.getCmLogProbs(DmvModelConverter.getDepProbMatrix(randModel,sentences.getLabelAlphabet()));
      ViterbiParser parser=new DmvCkyParser();
      DepTreebank treebank=parser.getViterbiParse(sentences,randModel);
      initBoundsSol=new DmvSolution(logProbs,idm,treebank,dw.computeTrueObjective(logProbs,treebank));
    }
 else {
      throw new IllegalStateException("String_Node_Str" + opt);
    }
    double offsetProb=Command.getOptionValue(cmd,"String_Node_Str",1.0);
    double probOfSkipCm=Command.getOptionValue(cmd,"String_Node_Str",0.0);
    int numDoubledCms=Command.getOptionValue(cmd,"String_Node_Str",0);
    if (numDoubledCms > 0) {
      throw new RuntimeException("String_Node_Str");
    }
    DmvDantzigWolfeRelaxationTest.setBoundsFromInitSol(dw,initBoundsSol,offsetProb,probOfSkipCm);
    return initBoundsSol;
  }
  return null;
}

Fixed version (ground truth):
private DmvSolution updateBounds(CommandLine cmd,SentenceCollection sentences,DmvRelaxation dw){
  if (cmd.hasOption("String_Node_Str")) {
    InitSol opt=InitSol.getById(Command.getOptionValue(cmd,"String_Node_Str","String_Node_Str"));
    IndexedDmvModel idm=new IndexedDmvModel(sentences);
    DmvSolution initBoundsSol;
    if (opt == InitSol.VITERBI_EM) {
      initBoundsSol=DmvDantzigWolfeRelaxationTest.getInitFeasSol(sentences);
    }
 else     if (opt == InitSol.GOLD) {
      throw new RuntimeException("String_Node_Str");
    }
 else     if (opt == InitSol.RANDOM || opt == InitSol.UNIFORM) {
      DmvWeightGenerator weightGen;
      if (opt == InitSol.RANDOM) {
        Prng.seed(System.currentTimeMillis());
        weightGen=new DmvRandomWeightGenerator(0.00001);
      }
 else {
        weightGen=new DmvUniformWeightGenerator();
      }
      DmvModelFactory modelFactory=new DmvModelFactory(weightGen);
      DmvModel randModel=(DmvModel)modelFactory.getInstance(sentences);
      double[][] logProbs=idm.getCmLogProbs(DmvModelConverter.getDepProbMatrix(randModel,sentences.getLabelAlphabet()));
      ViterbiParser parser=new DmvCkyParser();
      DepTreebank treebank=parser.getViterbiParse(sentences,randModel);
      initBoundsSol=new DmvSolution(logProbs,idm,treebank,dw.computeTrueObjective(logProbs,treebank));
    }
 else {
      throw new IllegalStateException("String_Node_Str" + opt);
    }
    double offsetProb=Command.getOptionValue(cmd,"String_Node_Str",1.0);
    double probOfSkipCm=Command.getOptionValue(cmd,"String_Node_Str",0.0);
    int numDoubledCms=Command.getOptionValue(cmd,"String_Node_Str",0);
    if (numDoubledCms > 0) {
      throw new RuntimeException("String_Node_Str");
    }
    DmvDantzigWolfeRelaxationTest.setBoundsFromInitSol(dw,initBoundsSol,offsetProb,probOfSkipCm);
    return initBoundsSol;
  }
  return null;
}