int row = index;
while (col < numberOfColumns) {
if (null != rows.get(row - largeTableIndexOffset)[col] &&
row - index + 1 <= (int) rows.get(row - largeTableIndexOffset)[col].getModelElement().getRowspan()) {
CellRenderer cell = rows.get(row - largeTableIndexOffset)[col];
<BUG>Border cellModelTopBorder = getCellSideBorder(cell.getModelElement(), Property.BORDER_TOP);
</BUG>
int colspan = (int) cell.getPropertyAsInteger(Property.COLSPAN);
if (null == firstBorderOnCurrentPage.get(col) || (null != cellModelTopBorder && cellModelTopBorder.getWidth() > firstBorderOnCurrentPage.get(col).getWidth())) {
for (int i = col; i < col + colspan; i++) {

int row = index;
while (col < numberOfColumns) {
if (null != rows.get(row - largeTableIndexOffset)[col] &&
row - index + 1 <= (int) rows.get(row - largeTableIndexOffset)[col].getModelElement().getRowspan()) {
CellRenderer cell = rows.get(row - largeTableIndexOffset)[col];
Border cellModelTopBorder = BorderUtil.getCellSideBorder(cell.getModelElement(), Property.BORDER_TOP);
int colspan = (int) cell.getPropertyAsInteger(Property.COLSPAN);
if (null == firstBorderOnCurrentPage.get(col) || (null != cellModelTopBorder && cellModelTopBorder.getWidth() > firstBorderOnCurrentPage.get(col).getWidth())) {
for (int i = col; i < col + colspan; i++) {
