Program: 145877
Project: 145877
Buggy source:
/** 
 * Parses a wiki page in raw format with | to the internal object structure.
 * @param testFlow {@link TestFlow}
 * @param content wiki page content
 * @return test component of this page
 * @throws SystemException is thrown in case of invalid input or parsing errors
 */
public LinkedList<TestComponent> parse(TestFlow testFlow,String content) throws SystemException {
  if (testFlow instanceof TestScenario) {
    ((TestScenario)testFlow).clearIncludes();
  }
  LinkedList<TestComponent> testComponents=new LinkedList<TestComponent>();
  StringTokenizer stringTokenizer=new StringTokenizer(content,"String_Node_Str");
  Boolean firstRow=true;
  IEclipseContext context=EclipseContextFactory.getServiceContext(FrameworkUtil.getBundle(getClass()).getBundleContext());
  while (stringTokenizer.hasMoreTokens()) {
    String line=stringTokenizer.nextToken();
    if (firstRow && line.equals("String_Node_Str")) {
      TestInvisibleContent testInvisibleContent=new TestInvisibleContent();
      testInvisibleContent.setSourceCode(line);
      testComponents.add(testInvisibleContent);
    }
 else     if (line.equalsIgnoreCase(SCENARIO_PRAEAMBLE) && testFlow instanceof TestScenario) {
      addScenario(testFlow,testComponents,stringTokenizer);
    }
 else     if (lineIsElementOfActionGroup(line)) {
      addTestActionGroup(testFlow,testComponents,context,line);
    }
 else     if (line.startsWith("String_Node_Str")) {
      addScenarioParameter(testComponents,line);
    }
 else     if (line.startsWith(SCENARIO_INCLUDE)) {
      parseScenarioInclude(testFlow,testComponents,stringTokenizer,line);
    }
 else     if (line.startsWith("String_Node_Str")) {
      addScenarioInScenario(testFlow,testComponents,stringTokenizer,line);
    }
 else {
      addDescriptionLine(testFlow,testComponents,line);
    }
  }
  return testComponents;
}

Fixed version (ground truth):
/** 
 * Parses a wiki page in raw format with | to the internal object structure.
 * @param testFlow {@link TestFlow}
 * @param content wiki page content
 * @return test component of this page
 * @throws SystemException is thrown in case of invalid input or parsing errors
 */
public LinkedList<TestComponent> parse(TestFlow testFlow,String content) throws SystemException {
  if (testFlow instanceof TestScenario) {
    ((TestScenario)testFlow).clearIncludes();
  }
  LinkedList<TestComponent> testComponents=new LinkedList<TestComponent>();
  StringTokenizer stringTokenizer=new StringTokenizer(content,"String_Node_Str");
  Boolean firstRow=true;
  IEclipseContext context=EclipseContextFactory.getServiceContext(FrameworkUtil.getBundle(getClass()).getBundleContext());
  while (stringTokenizer.hasMoreTokens()) {
    String line=stringTokenizer.nextToken();
    if (firstRow && line.equals("String_Node_Str")) {
      TestInvisibleContent testInvisibleContent=new TestInvisibleContent();
      testInvisibleContent.setSourceCode(line);
      testComponents.add(testInvisibleContent);
    }
 else     if (line.equalsIgnoreCase(SCENARIO_PRAEAMBLE) && testFlow instanceof TestScenario) {
      int index=testComponents.size();
      addScenario(testFlow,testComponents,stringTokenizer);
    }
 else     if (lineIsElementOfActionGroup(line)) {
      addTestActionGroup(testFlow,testComponents,context,line);
    }
 else     if (line.startsWith("String_Node_Str")) {
      addScenarioParameter(testComponents,line);
    }
 else     if (line.startsWith(SCENARIO_INCLUDE)) {
      parseScenarioInclude(testFlow,testComponents,stringTokenizer,line);
    }
 else     if (line.startsWith("String_Node_Str")) {
      addScenarioInScenario(testFlow,testComponents,stringTokenizer,line);
    }
 else {
      addDescriptionLine(testFlow,testComponents,line);
    }
  }
  return testComponents;
}