Program: 76795
Project: 76795
Buggy source:
/** 
 * Draws the borders of a container.
 * @param borders		the border info
 */
private void drawBorder(BorderInfo border){
  if (IStyle.SOLID_VALUE.equals(border.borderStyle)) {
    drawLine(layoutPointX2PDF(border.startX),layoutPointY2PDF(border.startY),layoutPointX2PDF(border.endX),layoutPointY2PDF(border.endY),pdfMeasure(border.borderWidth),border.borderColor,"String_Node_Str",cb);
    return;
  }
  if (IStyle.DOTTED_VALUE.equals(border.borderStyle)) {
    drawLine(layoutPointX2PDF(border.startX),layoutPointY2PDF(border.startY),layoutPointX2PDF(border.endX),layoutPointY2PDF(border.endY),pdfMeasure(border.borderWidth),border.borderColor,"String_Node_Str",cb);
    return;
  }
  if (IStyle.DASHED_VALUE.equals(border.borderStyle)) {
    drawLine(layoutPointX2PDF(border.startX),layoutPointY2PDF(border.startY),layoutPointX2PDF(border.endX),layoutPointY2PDF(border.endY),pdfMeasure(border.borderWidth),border.borderColor,"String_Node_Str",cb);
    return;
  }
  if (IStyle.DOUBLE_VALUE.equals(border.borderStyle)) {
    int outerBorderWidth=border.borderWidth / 3;
    int innerBorderWidth=border.borderWidth / 3;
switch (border.borderType) {
case BorderInfo.TOP_BORDER:
      drawLine(layoutPointX2PDF(border.startX),layoutPointY2PDF(border.startY - border.borderWidth / 2 + outerBorderWidth / 2),layoutPointX2PDF(border.endX),layoutPointY2PDF(border.endY - border.borderWidth / 2 + outerBorderWidth / 2),pdfMeasure(outerBorderWidth),border.borderColor,"String_Node_Str",cb);
    drawLine(layoutPointX2PDF(border.startX + 2 * border.borderWidth / 3),layoutPointY2PDF(border.startY + border.borderWidth / 2 - innerBorderWidth / 2),layoutPointX2PDF(border.endX - 2 * border.borderWidth / 3),layoutPointY2PDF(border.endY + border.borderWidth / 2 - innerBorderWidth / 2),pdfMeasure(innerBorderWidth),border.borderColor,"String_Node_Str",cb);
  return;
case BorderInfo.RIGHT_BORDER:
drawLine(layoutPointX2PDF(border.startX + border.borderWidth / 2 - outerBorderWidth / 2),layoutPointY2PDF(border.startY),layoutPointX2PDF(border.endX + border.borderWidth / 2 - outerBorderWidth / 2),layoutPointY2PDF(border.endY),pdfMeasure(outerBorderWidth),border.borderColor,"String_Node_Str",cb);
drawLine(layoutPointX2PDF(border.startX - border.borderWidth / 2 + innerBorderWidth / 2),layoutPointY2PDF(border.startY + 2 * border.borderWidth / 3),layoutPointX2PDF(border.endX - border.borderWidth / 2 + innerBorderWidth / 2),layoutPointY2PDF(border.endY - 2 * border.borderWidth / 3),pdfMeasure(innerBorderWidth),border.borderColor,"String_Node_Str",cb);
return;
case BorderInfo.BOTTOM_BORDER:
drawLine(layoutPointX2PDF(border.startX),layoutPointY2PDF(border.startY + border.borderWidth / 2 - outerBorderWidth / 2),layoutPointX2PDF(border.endX),layoutPointY2PDF(border.endY + border.borderWidth / 2 - outerBorderWidth / 2),pdfMeasure(outerBorderWidth),border.borderColor,"String_Node_Str",cb);
drawLine(layoutPointX2PDF(border.startX + 2 * border.borderWidth / 3),layoutPointY2PDF(border.startY - border.borderWidth / 2 + innerBorderWidth / 2),layoutPointX2PDF(border.endX - 2 * border.borderWidth / 3),layoutPointY2PDF(border.endY - border.borderWidth / 2 + innerBorderWidth / 2),pdfMeasure(innerBorderWidth),border.borderColor,"String_Node_Str",cb);
return;
case BorderInfo.LEFT_BORDER:
drawLine(layoutPointX2PDF(border.startX - border.borderWidth / 2 + outerBorderWidth / 2),layoutPointY2PDF(border.startY),layoutPointX2PDF(border.endX - border.borderWidth / 2 + outerBorderWidth / 2),layoutPointY2PDF(border.endY),pdfMeasure(outerBorderWidth),border.borderColor,"String_Node_Str",cb);
drawLine(layoutPointX2PDF(border.startX + border.borderWidth / 2 - innerBorderWidth / 2),layoutPointY2PDF(border.startY + 2 * border.borderWidth / 3),layoutPointX2PDF(border.endX + border.borderWidth / 2 - innerBorderWidth / 2),layoutPointY2PDF(border.endY - 2 * border.borderWidth / 3),pdfMeasure(innerBorderWidth),border.borderColor,"String_Node_Str",cb);
return;
}
}
drawLine(layoutPointX2PDF(border.startX),layoutPointY2PDF(border.startY),layoutPointX2PDF(border.endX),layoutPointY2PDF(border.endY),pdfMeasure(border.borderWidth),border.borderColor,"String_Node_Str",cb);
return;
}

Fixed version (ground truth):
/** 
 * Draws the borders of a container.
 * @param borders		the border info
 */
private void drawBorder(BorderInfo border){
  if (IStyle.SOLID_VALUE.equals(border.borderStyle)) {
    drawLine(layoutPointX2PDF(border.startX),layoutPointY2PDF(border.startY),layoutPointX2PDF(border.endX),layoutPointY2PDF(border.endY),pdfMeasure(border.borderWidth),border.borderColor,"String_Node_Str",cb);
    return;
  }
  if (IStyle.DOTTED_VALUE.equals(border.borderStyle)) {
    drawLine(layoutPointX2PDF(border.startX),layoutPointY2PDF(border.startY),layoutPointX2PDF(border.endX),layoutPointY2PDF(border.endY),pdfMeasure(border.borderWidth),border.borderColor,"String_Node_Str",cb);
    return;
  }
  if (IStyle.DASHED_VALUE.equals(border.borderStyle)) {
    drawLine(layoutPointX2PDF(border.startX),layoutPointY2PDF(border.startY),layoutPointX2PDF(border.endX),layoutPointY2PDF(border.endY),pdfMeasure(border.borderWidth),border.borderColor,"String_Node_Str",cb);
    return;
  }
  if (IStyle.DOUBLE_VALUE.equals(border.borderStyle)) {
    int outerBorderWidth=border.borderWidth / 3;
    int innerBorderWidth=border.borderWidth / 3;
switch (border.borderType) {
case BorderInfo.TOP_BORDER:
      drawLine(layoutPointX2PDF(border.startX),layoutPointY2PDF(border.startY - innerBorderWidth),layoutPointX2PDF(border.endX),layoutPointY2PDF(border.endY),pdfMeasure(outerBorderWidth),border.borderColor,"String_Node_Str",cb);
    drawLine(layoutPointX2PDF(border.startX + 2 * border.borderWidth / 3),layoutPointY2PDF(border.startY + innerBorderWidth / 2),layoutPointX2PDF(border.endX - 2 * border.borderWidth / 3),layoutPointY2PDF(border.endY + border.borderWidth / 2 - innerBorderWidth / 2),pdfMeasure(innerBorderWidth),border.borderColor,"String_Node_Str",cb);
  return;
case BorderInfo.RIGHT_BORDER:
drawLine(layoutPointX2PDF(border.startX),layoutPointY2PDF(border.startY),layoutPointX2PDF(border.endX + border.borderWidth / 2 - outerBorderWidth / 2),layoutPointY2PDF(border.endY),pdfMeasure(outerBorderWidth),border.borderColor,"String_Node_Str",cb);
drawLine(layoutPointX2PDF(border.startX - border.borderWidth / 2 + innerBorderWidth / 2),layoutPointY2PDF(border.startY + 2 * border.borderWidth / 3),layoutPointX2PDF(border.endX - border.borderWidth / 2 + innerBorderWidth / 2),layoutPointY2PDF(border.endY - 2 * border.borderWidth / 3),pdfMeasure(innerBorderWidth),border.borderColor,"String_Node_Str",cb);
return;
case BorderInfo.BOTTOM_BORDER:
drawLine(layoutPointX2PDF(border.startX),layoutPointY2PDF(border.startY),layoutPointX2PDF(border.endX),layoutPointY2PDF(border.endY + border.borderWidth / 2 - outerBorderWidth / 2),pdfMeasure(outerBorderWidth),border.borderColor,"String_Node_Str",cb);
drawLine(layoutPointX2PDF(border.startX + 2 * border.borderWidth / 3),layoutPointY2PDF(border.startY - border.borderWidth / 2 + innerBorderWidth / 2),layoutPointX2PDF(border.endX - 2 * border.borderWidth / 3),layoutPointY2PDF(border.endY - border.borderWidth / 2 + innerBorderWidth / 2),pdfMeasure(innerBorderWidth),border.borderColor,"String_Node_Str",cb);
return;
case BorderInfo.LEFT_BORDER:
drawLine(layoutPointX2PDF(border.startX - border.borderWidth / 2 + outerBorderWidth / 2),layoutPointY2PDF(border.startY),layoutPointX2PDF(border.endX - border.borderWidth / 2 + outerBorderWidth / 2),layoutPointY2PDF(border.endY),pdfMeasure(outerBorderWidth),border.borderColor,"String_Node_Str",cb);
drawLine(layoutPointX2PDF(border.startX + border.borderWidth / 2 - innerBorderWidth / 2),layoutPointY2PDF(border.startY + 2 * border.borderWidth / 3),layoutPointX2PDF(border.endX + border.borderWidth / 2 - innerBorderWidth / 2),layoutPointY2PDF(border.endY - 2 * border.borderWidth / 3),pdfMeasure(innerBorderWidth),border.borderColor,"String_Node_Str",cb);
return;
}
}
drawLine(layoutPointX2PDF(border.startX),layoutPointY2PDF(border.startY),layoutPointX2PDF(border.endX),layoutPointY2PDF(border.endY),pdfMeasure(border.borderWidth),border.borderColor,"String_Node_Str",cb);
return;
}