Program: 68083
Project: 68083
Buggy source:
/** 
 * Draws a chunk of text on the PPT.
 * @param text the textArea to be drawn.
 * @param textX the X position of the textArea relative to current page.
 * @param textY the Y position of the textArea relative to current page.
 * @param contentByte the content byte to draw the text.
 * @param contentByteHeight the height of the content byte.
 */
public void drawText(String text,float textX,float textY,float width,float height,FontInfo fontInfo,Color color,boolean rtl,String link){
  BaseFont baseFont=fontInfo.getBaseFont();
  String fontName=getFontName(baseFont);
  println("String_Node_Str" + (++shapeCount) + "String_Node_Str");
  println("String_Node_Str" + textX + "String_Node_Str"+ textY+ "String_Node_Str"+ width+ "String_Node_Str"+ height+ "String_Node_Str");
  println("String_Node_Str");
  println("String_Node_Str");
  println("String_Node_Str");
  println("String_Node_Str" + shapeCount + "String_Node_Str");
  println("String_Node_Str" + 0 + "String_Node_Str"+ "String_Node_Str"+ fontName+ "String_Node_Str"+ fontInfo.getFontSize()+ "String_Node_Str"+ getColorString(color)+ "String_Node_Str"+ buildI18nAttributes(text,rtl)+ "String_Node_Str");
  boolean isItalic=fontInfo != null && (fontInfo.getFontStyle() & Font.ITALIC) != 0;
  boolean isBold=fontInfo != null && (fontInfo.getFontStyle() & Font.BOLD) != 0;
  if (isItalic) {
    print("String_Node_Str");
  }
  if (isBold) {
    print("String_Node_Str");
  }
  if (link != null) {
    link=codeLink(link);
    println("String_Node_Str" + link + "String_Node_Str"+ link+ "String_Node_Str");
  }
  print(getEscapedStr(text));
  if (link != null) {
    print("String_Node_Str");
  }
  if (isBold) {
    print("String_Node_Str");
  }
  if (isItalic) {
    print("String_Node_Str");
  }
  println("String_Node_Str");
  println("String_Node_Str");
}

Fixed version (ground truth):
/** 
 * Draws a chunk of text on the PPT.
 * @param text the textArea to be drawn.
 * @param textX the X position of the textArea relative to current page.
 * @param textY the Y position of the textArea relative to current page.
 * @param contentByte the content byte to draw the text.
 * @param contentByteHeight the height of the content byte.
 */
public void drawText(String text,float textX,float textY,float width,float height,FontInfo fontInfo,Color color,boolean rtl,HyperlinkDef link){
  BaseFont baseFont=fontInfo.getBaseFont();
  String fontName=getFontName(baseFont);
  println("String_Node_Str" + (++shapeCount) + "String_Node_Str");
  println("String_Node_Str" + textX + "String_Node_Str"+ textY+ "String_Node_Str"+ width+ "String_Node_Str"+ height+ "String_Node_Str");
  println("String_Node_Str");
  println("String_Node_Str");
  println("String_Node_Str");
  println("String_Node_Str" + shapeCount + "String_Node_Str");
  println("String_Node_Str" + 0 + "String_Node_Str"+ "String_Node_Str"+ fontName+ "String_Node_Str"+ fontInfo.getFontSize()+ "String_Node_Str"+ getColorString(color)+ "String_Node_Str"+ buildI18nAttributes(text,rtl)+ "String_Node_Str");
  boolean isItalic=fontInfo != null && (fontInfo.getFontStyle() & Font.ITALIC) != 0;
  boolean isBold=fontInfo != null && (fontInfo.getFontStyle() & Font.BOLD) != 0;
  if (isItalic) {
    print("String_Node_Str");
  }
  if (isBold) {
    print("String_Node_Str");
  }
  if (link != null) {
    String hyperlink=link.getLink();
    String tooltip=link.getTooltip();
    if (hyperlink != null) {
      hyperlink=codeLink(hyperlink);
    }
    if (tooltip != null) {
      tooltip=codeLink(tooltip);
    }
    println("String_Node_Str" + link + "String_Node_Str"+ tooltip+ "String_Node_Str"+ link+ "String_Node_Str");
  }
  print(getEscapedStr(text));
  if (link != null) {
    print("String_Node_Str");
  }
  if (isBold) {
    print("String_Node_Str");
  }
  if (isItalic) {
    print("String_Node_Str");
  }
  println("String_Node_Str");
  println("String_Node_Str");
}