Program: 74792
Project: 74792
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){
  BaseFont baseFont=fontInfo.getBaseFont();
  String fontName=getFontName(baseFont);
  String red=Integer.toHexString(color.getRed());
  String green=Integer.toHexString(color.getGreen());
  String blue=Integer.toHexString(color.getBlue());
  red=red.length() == 1 ? "String_Node_Str" + red : red;
  green=green.length() == 1 ? "String_Node_Str" + green : green;
  blue=blue.length() == 1 ? "String_Node_Str" + blue : blue;
  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"+ red+ green+ blue+ "String_Node_Str");
  if (fontInfo != null && fontInfo.getFontStyle() == Font.ITALIC) {
    print("String_Node_Str");
    print(text);
    print("String_Node_Str");
  }
 else {
    print(text);
  }
  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){
  BaseFont baseFont=fontInfo.getBaseFont();
  String fontName=getFontName(baseFont);
  String red=Integer.toHexString(color.getRed());
  String green=Integer.toHexString(color.getGreen());
  String blue=Integer.toHexString(color.getBlue());
  red=red.length() == 1 ? "String_Node_Str" + red : red;
  green=green.length() == 1 ? "String_Node_Str" + green : green;
  blue=blue.length() == 1 ? "String_Node_Str" + blue : blue;
  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"+ red+ green+ blue+ "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");
  }
  print(text);
  if (isBold) {
    print("String_Node_Str");
  }
  if (isItalic) {
    print("String_Node_Str");
  }
  println("String_Node_Str");
  println("String_Node_Str");
}