Program: 62842
Project: 62842
Buggy source:
@Override public boolean extractQuestionDetails(Map<String,String[]> requestParameters,FeedbackQuestionType questionType){
  String numOfRubricChoicesString=HttpRequestHelper.getValueFromParamMap(requestParameters,"String_Node_Str");
  String numOfRubricSubQuestionsString=HttpRequestHelper.getValueFromParamMap(requestParameters,"String_Node_Str");
  int numOfRubricChoices=Integer.parseInt(numOfRubricChoicesString);
  int numOfRubricSubQuestions=Integer.parseInt(numOfRubricSubQuestionsString);
  List<String> rubricChoices=new ArrayList<String>();
  List<String> rubricSubQuestions=new ArrayList<String>();
  List<List<String>> rubricDescriptions=new ArrayList<List<String>>();
  int numActualChoices=0;
  int numActualSubQuestions=0;
  for (int i=0; i < numOfRubricChoices; i++) {
    String choice=HttpRequestHelper.getValueFromParamMap(requestParameters,"String_Node_Str" + "String_Node_Str" + i);
    if (choice != null) {
      rubricChoices.add(choice);
      numActualChoices++;
    }
  }
  for (int i=0; i < numOfRubricSubQuestions; i++) {
    String subQuestion=HttpRequestHelper.getValueFromParamMap(requestParameters,"String_Node_Str" + "String_Node_Str" + i);
    if (subQuestion != null) {
      rubricSubQuestions.add(subQuestion);
      numActualSubQuestions++;
    }
  }
  for (int i=0; i < numOfRubricSubQuestions; i++) {
    rubricDescriptions.add(new ArrayList<String>());
    for (int j=0; j < numOfRubricChoices; j++) {
      String description=HttpRequestHelper.getValueFromParamMap(requestParameters,"String_Node_Str" + "String_Node_Str" + i + "String_Node_Str"+ j);
      if (description != null) {
        rubricDescriptions.get(i).add(description);
      }
    }
  }
  setRubricQuestionDetails(numActualChoices,rubricChoices,numActualSubQuestions,rubricSubQuestions,rubricDescriptions);
  return true;
}

Fixed version (ground truth):
@Override public boolean extractQuestionDetails(Map<String,String[]> requestParameters,FeedbackQuestionType questionType){
  String numOfRubricChoicesString=HttpRequestHelper.getValueFromParamMap(requestParameters,"String_Node_Str");
  String numOfRubricSubQuestionsString=HttpRequestHelper.getValueFromParamMap(requestParameters,"String_Node_Str");
  int numOfRubricChoices=Integer.parseInt(numOfRubricChoicesString);
  int numOfRubricSubQuestions=Integer.parseInt(numOfRubricSubQuestionsString);
  List<String> rubricChoices=new ArrayList<String>();
  List<String> rubricSubQuestions=new ArrayList<String>();
  List<List<String>> rubricDescriptions=new ArrayList<List<String>>();
  int numActualChoices=0;
  int numActualSubQuestions=0;
  for (int i=0; i < numOfRubricChoices; i++) {
    String choice=HttpRequestHelper.getValueFromParamMap(requestParameters,"String_Node_Str" + "String_Node_Str" + i);
    if (choice != null) {
      rubricChoices.add(choice);
      numActualChoices++;
    }
  }
  for (int i=0; i < numOfRubricSubQuestions; i++) {
    String subQuestion=HttpRequestHelper.getValueFromParamMap(requestParameters,"String_Node_Str" + "String_Node_Str" + i);
    if (subQuestion != null) {
      rubricSubQuestions.add(subQuestion);
      numActualSubQuestions++;
    }
  }
  int descRows=-1;
  for (int i=0; i < numOfRubricSubQuestions; i++) {
    for (int j=0; j < numOfRubricChoices; j++) {
      String description=HttpRequestHelper.getValueFromParamMap(requestParameters,"String_Node_Str" + "String_Node_Str" + i + "String_Node_Str"+ j);
      if (description != null) {
        if (j == 0) {
          descRows++;
          rubricDescriptions.add(new ArrayList<String>());
        }
        rubricDescriptions.get(descRows).add(description);
      }
    }
  }
  setRubricQuestionDetails(numActualChoices,rubricChoices,numActualSubQuestions,rubricSubQuestions,rubricDescriptions);
  return true;
}