<changes>
<release version="3.6-beta1" date="2009-??-??">
+ <action dev="POI-DEVELOPERS" type="fix">48332 - fixed XSSFSheet autoSizeColumn() to tolerate empty RichTextString</action>
<action dev="POI-DEVELOPERS" type="fix">48332 - fixed ColumnInfoRecord to tolerate missing reserved field</action>
<action dev="POI-DEVELOPERS" type="fix">47701 - fixed RecordFormatException when reading list subrecords (LbsDataSubRecord)</action>
<action dev="POI-DEVELOPERS" type="add"> memory usage optimization in XSSF - avoid creating parentless xml beans</action>
XSSFFont fnt = rt.getFontOfFormattingRun(j);
if (fnt != null) {
int len = rt.getLengthOfFormattingRun(j);
- copyAttributes(fnt, str, pos, pos + len);
- pos += len;
+ if(len > 0) { //ignore degenerate zero-length runs
+ copyAttributes(fnt, str, pos, pos + len);
+ pos += len;
+ }
}
}
}
package org.apache.poi.xssf.usermodel;
-import org.apache.poi.ss.usermodel.BaseTestSheet;
-import org.apache.poi.ss.usermodel.Cell;
-import org.apache.poi.ss.usermodel.Workbook;
+import org.apache.poi.ss.usermodel.*;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.XSSFITestDataProvider;
import org.apache.poi.xssf.XSSFTestDataSamples;
assertTrue(col.getBestFit());
}
+ /**
+ * XSSFSheet autoSizeColumn() on empty RichTextString fails
+ */
+ public void test48325() {
+ XSSFWorkbook wb = new XSSFWorkbook();
+ XSSFSheet sheet = wb.createSheet("Test");
+ CreationHelper factory = wb.getCreationHelper();
+
+ XSSFRow row = sheet.createRow(0);
+ XSSFCell cell = row.createCell(0);
+
+ XSSFFont font = wb.createFont();
+ RichTextString rts = factory.createRichTextString("");
+ rts.applyFont(font);
+ cell.setCellValue(rts);
+
+ sheet.autoSizeColumn(0);
+ }
public void testGetCellComment() {
XSSFWorkbook workbook = new XSSFWorkbook();