Program: 70872
Project: 70872
Buggy source:
private void init(TableLayoutData.ColumnData[] columnWidths,TableLayoutData.RowData[] rowHeights){
  int size=rowHeights.length;
  for (int i=1; i < size + 1; i++) {
    rowHeights[i - 1]=new TableLayoutData.RowData();
    rowHeights[i - 1].rowNumber=i;
    rowHeights[i - 1].height=getOwner().getRowHeightValue(i);
    ITableLayoutOwner.DimensionInfomation dim=getOwner().getRowHeight(i);
    rowHeights[i - 1].isForce=dim.getMeasure() > 0;
    if (DesignChoiceConstants.UNITS_PERCENTAGE.equals(dim.getUnits()) && dim.getMeasure() > 0) {
      rowHeights[i - 1].isPercentage=true;
      rowHeights[i - 1].percentageHeight=dim.getMeasure();
    }
    if (dim.getUnits() == null || dim.getUnits().length() == 0) {
      rowHeights[i - 1].isAuto=true;
    }
    rowHeights[i - 1].trueMinRowHeight=(rowHeights[i - 1].isForce && !rowHeights[i - 1].isPercentage) ? rowHeights[i - 1].height : rowHeights[i - 1].minRowHeight;
  }
  size=columnWidths.length;
  for (int i=1; i < size + 1; i++) {
    columnWidths[i - 1]=new TableLayoutData.ColumnData();
    columnWidths[i - 1].columnNumber=i;
    columnWidths[i - 1].width=getOwner().getColumnWidthValue(i);
    ITableLayoutOwner.DimensionInfomation dim=getOwner().getColumnWidth(i);
    columnWidths[i - 1].isForce=dim.getMeasure() > 0;
    if (DesignChoiceConstants.UNITS_PERCENTAGE.equals(dim.getUnits()) && dim.getMeasure() > 0) {
      columnWidths[i - 1].isPercentage=true;
      columnWidths[i - 1].percentageWidth=dim.getMeasure();
    }
    if (dim.getUnits() == null || dim.getUnits().length() == 0) {
      columnWidths[i - 1].isAuto=true;
    }
    columnWidths[i - 1].trueMinColumnWidth=(columnWidths[i - 1].isForce && !columnWidths[i - 1].isPercentage) ? columnWidths[i - 1].width : columnWidths[i - 1].minColumnWidth;
  }
}

Fixed version (ground truth):
private void init(TableLayoutData.ColumnData[] columnWidths,TableLayoutData.RowData[] rowHeights){
  int size=rowHeights.length;
  for (int i=1; i < size + 1; i++) {
    rowHeights[i - 1]=new TableLayoutData.RowData();
    rowHeights[i - 1].rowNumber=i;
    rowHeights[i - 1].height=getOwner().getRowHeightValue(i);
    ITableLayoutOwner.DimensionInfomation dim=getOwner().getRowHeight(i);
    rowHeights[i - 1].isForce=dim.getMeasure() > 0;
    if (DesignChoiceConstants.UNITS_PERCENTAGE.equals(dim.getUnits()) && dim.getMeasure() > 0) {
      rowHeights[i - 1].isPercentage=true;
      rowHeights[i - 1].percentageHeight=dim.getMeasure();
    }
    if (dim.getUnits() == null || dim.getUnits().length() == 0) {
      rowHeights[i - 1].isAuto=true;
    }
    rowHeights[i - 1].trueMinRowHeight=(rowHeights[i - 1].isForce && !rowHeights[i - 1].isPercentage) ? rowHeights[i - 1].height : rowHeights[i - 1].minRowHeight;
    if (rowHeights[i - 1].trueMinRowHeight < RowHandleAdapter.DEFAULT_MINHEIGHT) {
      rowHeights[i - 1].trueMinRowHeight=RowHandleAdapter.DEFAULT_MINHEIGHT;
    }
  }
  size=columnWidths.length;
  for (int i=1; i < size + 1; i++) {
    columnWidths[i - 1]=new TableLayoutData.ColumnData();
    columnWidths[i - 1].columnNumber=i;
    columnWidths[i - 1].width=getOwner().getColumnWidthValue(i);
    ITableLayoutOwner.DimensionInfomation dim=getOwner().getColumnWidth(i);
    columnWidths[i - 1].isForce=dim.getMeasure() > 0;
    if (DesignChoiceConstants.UNITS_PERCENTAGE.equals(dim.getUnits()) && dim.getMeasure() > 0) {
      columnWidths[i - 1].isPercentage=true;
      columnWidths[i - 1].percentageWidth=dim.getMeasure();
    }
    if (dim.getUnits() == null || dim.getUnits().length() == 0) {
      columnWidths[i - 1].isAuto=true;
    }
    columnWidths[i - 1].trueMinColumnWidth=(columnWidths[i - 1].isForce && !columnWidths[i - 1].isPercentage) ? columnWidths[i - 1].width : columnWidths[i - 1].minColumnWidth;
  }
}