Program: 64938
Project: 64938
Buggy source:
/** 
 * Build the style of table content
 */
public void buildTableStyle(ITableContent table,StringBuffer styleBuffer){
  addDefaultTableStyles(styleBuffer);
  IStyle style=table.getStyle();
  boolean isInline=false;
  CSSValue display=style.getProperty(IStyle.STYLE_DISPLAY);
  if (IStyle.NONE_VALUE == display) {
    styleBuffer.append("String_Node_Str");
  }
 else   if (IStyle.INLINE_VALUE == display || IStyle.INLINE_BLOCK_VALUE == display) {
    isInline=true;
    if (!reportEmitter.browserSupportsInlineBlock) {
      styleBuffer.append("String_Node_Str");
    }
 else {
      styleBuffer.append("String_Node_Str");
    }
  }
  DimensionType height=table.getHeight();
  if (null != height) {
    buildSize(styleBuffer,HTMLTags.ATTR_HEIGHT,height);
  }
  boolean widthOutputFlag=false;
  DimensionType width=table.getWidth();
  if (null != width) {
    buildSize(styleBuffer,HTMLTags.ATTR_WIDTH,width);
    widthOutputFlag=true;
  }
 else {
    if (!"String_Node_Str".equalsIgnoreCase(style.getCanShrink())) {
      boolean absoluteWidth=true;
      for (int i=0; i < table.getColumnCount(); i++) {
        IColumn column=table.getColumn(i);
        DimensionType columnWidth=column.getWidth();
        if (columnWidth == null) {
          absoluteWidth=false;
          break;
        }
 else {
          if ("String_Node_Str".endsWith(columnWidth.getUnits())) {
            absoluteWidth=false;
            break;
          }
        }
      }
      if (!absoluteWidth) {
        styleBuffer.append("String_Node_Str");
        widthOutputFlag=true;
      }
    }
  }
  if (fixedReport) {
    if (!"String_Node_Str".equalsIgnoreCase(style.getCanShrink())) {
      if (!widthOutputFlag) {
        if (isInline) {
          styleBuffer.append("String_Node_Str");
        }
 else {
          styleBuffer.append("String_Node_Str");
        }
      }
      CSSValue overflowValue=style.getProperty(IStyle.STYLE_OVERFLOW);
      if (overflowValue == null) {
        styleBuffer.append("String_Node_Str");
      }
 else {
        styleBuffer.append("String_Node_Str").append(overflowValue.getCssText()).append("String_Node_Str");
      }
      styleBuffer.append("String_Node_Str");
    }
  }
  String value=style.getTextAlign();
  if (null != value) {
    if (isInline) {
      styleBuffer.append("String_Node_Str");
      styleBuffer.append("String_Node_Str");
      styleBuffer.append(value);
      styleBuffer.append("String_Node_Str");
    }
    styleBuffer.append("String_Node_Str");
    styleBuffer.append(value);
    styleBuffer.append("String_Node_Str");
  }
  style=getElementStyle(table);
  if (style == null) {
    return;
  }
  AttributeBuilder.buildFont(styleBuffer,style);
  AttributeBuilder.buildBox(styleBuffer,style);
  AttributeBuilder.buildBackground(styleBuffer,style,reportEmitter);
  AttributeBuilder.buildText(styleBuffer,style);
  AttributeBuilder.buildVisual(styleBuffer,style);
  AttributeBuilder.buildTextDecoration(styleBuffer,style);
}

Fixed version (ground truth):
/** 
 * Build the style of table content
 */
public void buildTableStyle(ITableContent table,StringBuffer styleBuffer){
  addDefaultTableStyles(styleBuffer);
  IStyle style=table.getStyle();
  boolean isInline=false;
  CSSValue display=style.getProperty(IStyle.STYLE_DISPLAY);
  if (IStyle.NONE_VALUE == display) {
    styleBuffer.append("String_Node_Str");
  }
 else   if (IStyle.INLINE_VALUE == display || IStyle.INLINE_BLOCK_VALUE == display) {
    isInline=true;
    if (!reportEmitter.browserSupportsInlineBlock) {
      styleBuffer.append("String_Node_Str");
    }
 else {
      styleBuffer.append("String_Node_Str");
    }
  }
  DimensionType height=table.getHeight();
  if (null != height) {
    buildSize(styleBuffer,HTMLTags.ATTR_HEIGHT,height);
  }
  boolean widthOutputFlag=false;
  DimensionType width=table.getWidth();
  if (null != width) {
    buildSize(styleBuffer,HTMLTags.ATTR_WIDTH,width);
    widthOutputFlag=true;
  }
 else {
    if (!"String_Node_Str".equalsIgnoreCase(style.getCanShrink())) {
      boolean absoluteWidth=true;
      for (int i=0; i < table.getColumnCount(); i++) {
        IColumn column=table.getColumn(i);
        DimensionType columnWidth=column.getWidth();
        if (columnWidth == null) {
          absoluteWidth=false;
          break;
        }
 else {
          if ("String_Node_Str".endsWith(columnWidth.getUnits())) {
            absoluteWidth=false;
            break;
          }
        }
      }
      if (!absoluteWidth) {
        styleBuffer.append("String_Node_Str");
        widthOutputFlag=true;
      }
    }
  }
  if (fixedReport) {
    if (!"String_Node_Str".equalsIgnoreCase(style.getCanShrink())) {
      if (!widthOutputFlag) {
        if (isInline) {
          styleBuffer.append("String_Node_Str");
        }
 else {
          styleBuffer.append("String_Node_Str");
        }
      }
      CSSValue overflowValue=style.getProperty(IStyle.STYLE_OVERFLOW);
      if (overflowValue == null) {
        if (isInline) {
          styleBuffer.append("String_Node_Str");
        }
      }
 else {
        styleBuffer.append("String_Node_Str").append(overflowValue.getCssText()).append("String_Node_Str");
      }
      styleBuffer.append("String_Node_Str");
    }
  }
  String value=style.getTextAlign();
  if (null != value) {
    if (isInline) {
      styleBuffer.append("String_Node_Str");
      styleBuffer.append("String_Node_Str");
      styleBuffer.append(value);
      styleBuffer.append("String_Node_Str");
    }
    styleBuffer.append("String_Node_Str");
    styleBuffer.append(value);
    styleBuffer.append("String_Node_Str");
  }
  style=getElementStyle(table);
  if (style == null) {
    return;
  }
  AttributeBuilder.buildFont(styleBuffer,style);
  AttributeBuilder.buildBox(styleBuffer,style);
  AttributeBuilder.buildBackground(styleBuffer,style,reportEmitter);
  AttributeBuilder.buildText(styleBuffer,style);
  AttributeBuilder.buildVisual(styleBuffer,style);
  AttributeBuilder.buildTextDecoration(styleBuffer,style);
}