Program: 20007
Project: 20007
Buggy source:
/** 
 * Scores the given set of states
 * @param scoreableList a list containing scoreable objects tobe scored
 * @return true if there was a Feature available to scorefalse if there was no more Feature available to score
 */
public boolean calculateScores(List scoreableList){
  FeatureFrame ff;
  try {
    ff=frontEnd.getFeatureFrame(1,null);
    Feature feature;
    if (!hasFeatures(ff)) {
      return false;
    }
    feature=ff.getFeatures()[0];
    if (feature.getSignal() == Signal.UTTERANCE_START) {
      ff=frontEnd.getFeatureFrame(1,null);
      if (!hasFeatures(ff)) {
        return false;
      }
      feature=ff.getFeatures()[0];
    }
    if (feature.getSignal() == Signal.UTTERANCE_END) {
      return false;
    }
    if (!feature.hasContent()) {
      throw new Error("String_Node_Str");
    }
    float logMaxScore=-Float.MAX_VALUE;
    for (Iterator i=scoreableList.iterator(); i.hasNext(); ) {
      Scoreable scoreable=(Scoreable)i.next();
      if (scoreable.getFrameNumber() != curFeature.getID()) {
        throw new Error("String_Node_Str" + scoreable.getFrameNumber() + "String_Node_Str"+ curFeature.getID());
      }
      float logScore=scoreable.calculateScore(feature);
      if (logScore > logMaxScore) {
        logMaxScore=logScore;
      }
    }
    if (normalizeScores) {
      for (Iterator i=scoreableList.iterator(); i.hasNext(); ) {
        Scoreable scoreable=(Scoreable)i.next();
        scoreable.normalizeScore(logMaxScore);
      }
    }
  }
 catch (  IOException ioe) {
    System.out.println("String_Node_Str" + ioe);
    return false;
  }
  return true;
}

Fixed version (ground truth):
/** 
 * Scores the given set of states
 * @param scoreableList a list containing scoreable objects tobe scored
 * @return true if there was a Feature available to scorefalse if there was no more Feature available to score
 */
public boolean calculateScores(List scoreableList){
  FeatureFrame ff;
  try {
    ff=frontEnd.getFeatureFrame(1,null);
    Feature feature;
    if (!hasFeatures(ff)) {
      return false;
    }
    feature=ff.getFeatures()[0];
    if (feature.getSignal() == Signal.UTTERANCE_START) {
      ff=frontEnd.getFeatureFrame(1,null);
      if (!hasFeatures(ff)) {
        return false;
      }
      feature=ff.getFeatures()[0];
    }
    if (feature.getSignal() == Signal.UTTERANCE_END) {
      return false;
    }
    if (!feature.hasContent()) {
      throw new Error("String_Node_Str");
    }
    float logMaxScore=-Float.MAX_VALUE;
    for (Iterator i=scoreableList.iterator(); i.hasNext(); ) {
      Scoreable scoreable=(Scoreable)i.next();
      if (scoreable.getFrameNumber() != feature.getID()) {
        throw new Error("String_Node_Str" + scoreable.getFrameNumber() + "String_Node_Str"+ feature.getID());
      }
      float logScore=scoreable.calculateScore(feature);
      if (logScore > logMaxScore) {
        logMaxScore=logScore;
      }
    }
    if (normalizeScores) {
      for (Iterator i=scoreableList.iterator(); i.hasNext(); ) {
        Scoreable scoreable=(Scoreable)i.next();
        scoreable.normalizeScore(logMaxScore);
      }
    }
  }
 catch (  IOException ioe) {
    System.out.println("String_Node_Str" + ioe);
    return false;
  }
  return true;
}