Program: 71517
Project: 71517
Buggy source:
static void handleElement(Element ele,Map cssStyles,IContent content,ActionContent action,int index){
  IStyle cssStyle=(IStyle)cssStyles.get(ele);
  if (cssStyle != null) {
    if ("String_Node_Str".equals(cssStyle.getDisplay())) {
      return;
    }
  }
  String tagName=ele.getTagName();
  if (tagName.toLowerCase().equals("String_Node_Str")) {
    IContainerContent container=content.getReportContent().createContainerContent();
    addChild(content,container);
    handleStyle(ele,cssStyles,container);
    ActionContent actionContent=handleAnchor(ele,container,action);
    processNodes(ele,cssStyles,content,actionContent);
  }
 else   if (tagName.toLowerCase().equals("String_Node_Str")) {
    outputImg(ele,cssStyles,content);
  }
 else   if (tagName.toLowerCase().equals("String_Node_Str")) {
    outputEmbedContent(ele,cssStyles,content);
  }
 else   if (tagName.toLowerCase().equals("String_Node_Str")) {
    ILabelContent label=content.getReportContent().createLabelContent();
    addChild(content,label);
    label.setText("String_Node_Str");
    StyleDeclaration inlineStyle=new StyleDeclaration(content.getCSSEngine());
    inlineStyle.setProperty(IStyle.STYLE_DISPLAY,CSSValueConstants.INLINE_VALUE);
    label.setInlineStyle(inlineStyle);
  }
 else   if (tagName.toLowerCase().equals("String_Node_Str") || tagName.toLowerCase().equals("String_Node_Str")) {
    IReportContent report=content.getReportContent();
    ITableContent table=report.createTableContent();
    addChild(content,table);
    Column column1=new Column(report);
    column1.setWidth(new DimensionType(2,"String_Node_Str"));
    table.addColumn(column1);
    column1=new Column(report);
    table.addColumn(column1);
    handleStyle(ele,cssStyles,table);
    processNodes(ele,cssStyles,table,action);
  }
 else   if (tagName.toLowerCase().equals("String_Node_Str") && ele.getParentNode().getNodeType() == Node.ELEMENT_NODE) {
    IReportContent report=content.getReportContent();
    IRowContent row=report.createRowContent();
    addChild(content,row);
    handleStyle(ele,cssStyles,row);
    StyleDeclaration style=new StyleDeclaration(content.getCSSEngine());
    style.setProperty(IStyle.STYLE_VERTICAL_ALIGN,CSSValueConstants.TOP_VALUE);
    style.setProperty(IStyle.STYLE_PADDING_BOTTOM,IStyle.NUMBER_0);
    style.setProperty(IStyle.STYLE_PADDING_LEFT,IStyle.NUMBER_0);
    style.setProperty(IStyle.STYLE_PADDING_RIGHT,IStyle.NUMBER_0);
    style.setProperty(IStyle.STYLE_PADDING_TOP,IStyle.NUMBER_0);
    ICellContent orderCell=report.createCellContent();
    orderCell.setRowSpan(1);
    orderCell.setColumn(0);
    orderCell.setColSpan(1);
    orderCell.setInlineStyle(style);
    addChild(row,orderCell);
    TextContent text=(TextContent)report.createTextContent();
    addChild(orderCell,text);
    if (ele.getParentNode().getNodeName().equals("String_Node_Str")) {
      text.setText(new Integer(index).toString() + "String_Node_Str");
    }
 else     if (ele.getParentNode().getNodeName().equals("String_Node_Str")) {
      text.setText(new String(new char[]{'\u2022'}));
    }
    ICellContent childCell=report.createCellContent();
    childCell.setRowSpan(1);
    childCell.setColumn(1);
    childCell.setColSpan(1);
    childCell.setInlineStyle(style);
    addChild(row,childCell);
    processNodes(ele,cssStyles,childCell,action);
  }
 else   if (tagName.toLowerCase().equals("String_Node_Str") || tagName.toLowerCase().equals("String_Node_Str")) {
    IContainerContent container=content.getReportContent().createContainerContent();
    addChild(content,container);
    handleStyle(ele,cssStyles,container);
    if (tagName.toLowerCase().equals("String_Node_Str")) {
      StyleDeclaration style=new StyleDeclaration(content.getCSSEngine());
      style.setProperty(IStyle.STYLE_DISPLAY,CSSValueConstants.INLINE_VALUE);
      style.setProperty(IStyle.STYLE_VERTICAL_ALIGN,CSSValueConstants.TOP_VALUE);
      TextContent text=(TextContent)content.getReportContent().createTextContent();
      addChild(container,text);
      if (ele.getParentNode().getNodeName().equals("String_Node_Str")) {
        text.setText("String_Node_Str");
      }
      style.setTextIndent("String_Node_Str");
      text.setInlineStyle(style);
      IContainerContent childContainer=content.getReportContent().createContainerContent();
      childContainer.setInlineStyle(style);
      addChild(container,childContainer);
      processNodes(ele,cssStyles,container,action);
    }
 else {
      processNodes(ele,cssStyles,container,action);
    }
  }
 else   if ("String_Node_Str".equals(tagName.toLowerCase())) {
    TableProcessor.processTable(ele,cssStyles,content,action);
  }
 else {
    IContainerContent container=content.getReportContent().createContainerContent();
    handleStyle(ele,cssStyles,container);
    addChild(content,container);
    processNodes(ele,cssStyles,container,action);
  }
}

Fixed version (ground truth):
static void handleElement(Element ele,Map cssStyles,IContent content,ActionContent action,int index){
  IStyle cssStyle=(IStyle)cssStyles.get(ele);
  if (cssStyle != null) {
    if ("String_Node_Str".equals(cssStyle.getDisplay())) {
      return;
    }
  }
  String lTagName=ele.getTagName().toLowerCase();
  if (lTagName.equals("String_Node_Str")) {
    IContainerContent container=content.getReportContent().createContainerContent();
    addChild(content,container);
    handleStyle(ele,cssStyles,container);
    ActionContent actionContent=handleAnchor(ele,container,action);
    processNodes(ele,cssStyles,content,actionContent);
  }
 else   if (lTagName.equals("String_Node_Str")) {
    outputImg(ele,cssStyles,content);
  }
 else   if (lTagName.equals("String_Node_Str")) {
    outputEmbedContent(ele,cssStyles,content);
  }
 else   if (lTagName.equals("String_Node_Str")) {
    ILabelContent label=content.getReportContent().createLabelContent();
    addChild(content,label);
    label.setText("String_Node_Str");
    StyleDeclaration inlineStyle=new StyleDeclaration(content.getCSSEngine());
    inlineStyle.setProperty(IStyle.STYLE_DISPLAY,CSSValueConstants.INLINE_VALUE);
    label.setInlineStyle(inlineStyle);
  }
 else   if (lTagName.equals("String_Node_Str") || lTagName.equals("String_Node_Str")) {
    IReportContent report=content.getReportContent();
    ITableContent table=report.createTableContent();
    addChild(content,table);
    Column column1=new Column(report);
    column1.setWidth(new DimensionType(2,"String_Node_Str"));
    table.addColumn(column1);
    column1=new Column(report);
    table.addColumn(column1);
    handleStyle(ele,cssStyles,table);
    processNodes(ele,cssStyles,table,action);
  }
 else   if (lTagName.equals("String_Node_Str") && ele.getParentNode().getNodeType() == Node.ELEMENT_NODE) {
    IReportContent report=content.getReportContent();
    IRowContent row=report.createRowContent();
    addChild(content,row);
    handleStyle(ele,cssStyles,row);
    StyleDeclaration style=new StyleDeclaration(content.getCSSEngine());
    style.setProperty(IStyle.STYLE_VERTICAL_ALIGN,CSSValueConstants.TOP_VALUE);
    style.setProperty(IStyle.STYLE_PADDING_BOTTOM,IStyle.NUMBER_0);
    style.setProperty(IStyle.STYLE_PADDING_LEFT,IStyle.NUMBER_0);
    style.setProperty(IStyle.STYLE_PADDING_RIGHT,IStyle.NUMBER_0);
    style.setProperty(IStyle.STYLE_PADDING_TOP,IStyle.NUMBER_0);
    ICellContent orderCell=report.createCellContent();
    orderCell.setRowSpan(1);
    orderCell.setColumn(0);
    orderCell.setColSpan(1);
    orderCell.setInlineStyle(style);
    addChild(row,orderCell);
    TextContent text=(TextContent)report.createTextContent();
    addChild(orderCell,text);
    if (ele.getParentNode().getNodeName().equals("String_Node_Str")) {
      text.setText(new Integer(index).toString() + "String_Node_Str");
    }
 else     if (ele.getParentNode().getNodeName().equals("String_Node_Str")) {
      text.setText(new String(new char[]{'\u2022'}));
    }
    ICellContent childCell=report.createCellContent();
    childCell.setRowSpan(1);
    childCell.setColumn(1);
    childCell.setColSpan(1);
    childCell.setInlineStyle(style);
    addChild(row,childCell);
    processNodes(ele,cssStyles,childCell,action);
  }
 else   if (lTagName.equals("String_Node_Str") || lTagName.equals("String_Node_Str")) {
    IContainerContent container=content.getReportContent().createContainerContent();
    addChild(content,container);
    handleStyle(ele,cssStyles,container);
    if (lTagName.equals("String_Node_Str")) {
      StyleDeclaration style=new StyleDeclaration(content.getCSSEngine());
      style.setProperty(IStyle.STYLE_DISPLAY,CSSValueConstants.INLINE_VALUE);
      style.setProperty(IStyle.STYLE_VERTICAL_ALIGN,CSSValueConstants.TOP_VALUE);
      TextContent text=(TextContent)content.getReportContent().createTextContent();
      addChild(container,text);
      if (ele.getParentNode().getNodeName().equals("String_Node_Str")) {
        text.setText("String_Node_Str");
      }
      style.setTextIndent("String_Node_Str");
      text.setInlineStyle(style);
      IContainerContent childContainer=content.getReportContent().createContainerContent();
      childContainer.setInlineStyle(style);
      addChild(container,childContainer);
      processNodes(ele,cssStyles,container,action);
    }
 else {
      processNodes(ele,cssStyles,container,action);
    }
  }
 else   if ("String_Node_Str".equals(lTagName)) {
    TableProcessor.processTable(ele,cssStyles,content,action);
  }
 else   if (htmlBlockDisplay.contains(lTagName) || htmlInlineDisplay.contains(lTagName)) {
    IContainerContent container=content.getReportContent().createContainerContent();
    handleStyle(ele,cssStyles,container);
    addChild(content,container);
    processNodes(ele,cssStyles,container,action);
  }
 else {
    processNodes(ele,cssStyles,content,action);
  }
}