diff options
author | Nick Burch <nick@apache.org> | 2008-12-09 19:36:53 +0000 |
---|---|---|
committer | Nick Burch <nick@apache.org> | 2008-12-09 19:36:53 +0000 |
commit | eca181f8e46ba93045f2ea0306a6623833d4d2cd (patch) | |
tree | 069ff7feb68e493bd5f3f29ea199245864e70ee7 /src/testcases | |
parent | 7e6c4c3de8f02a6a2f486fddf8cbb509dbd25c2c (diff) | |
download | poi-eca181f8e46ba93045f2ea0306a6623833d4d2cd.tar.gz poi-eca181f8e46ba93045f2ea0306a6623833d4d2cd.zip |
Fix bug #46368 - HSSFRichTextRun and strings longer than 32768 characters
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@724848 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src/testcases')
-rw-r--r-- | src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java b/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java index 2c28be6501..1766199e45 100644 --- a/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java +++ b/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java @@ -35,6 +35,9 @@ import org.apache.poi.hssf.record.NameRecord; import org.apache.poi.hssf.record.aggregates.FormulaRecordAggregate; import org.apache.poi.hssf.record.formula.DeletedArea3DPtg; import org.apache.poi.hssf.record.formula.Ptg; +import org.apache.poi.ss.usermodel.Cell; +import org.apache.poi.ss.usermodel.RichTextString; +import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.util.CellRangeAddress; import org.apache.poi.util.TempFile; @@ -1540,4 +1543,36 @@ public final class TestBugs extends TestCase { HSSFWorkbook wb = openSample("45290.xls"); assertEquals(1, wb.getNumberOfSheets()); } + + /** + * HSSFRichTextString.length() returns negative for really + * long strings + */ + public void test46368() { + HSSFWorkbook wb = new HSSFWorkbook(); + HSSFSheet s = wb.createSheet(); + HSSFRow r = s.createRow(0); + for(int i=0; i<15; i++) { + int len = 32760 + i; + HSSFCell c = r.createCell(i); + + StringBuffer sb = new StringBuffer(); + for(int j=0; j<len; j++) { + sb.append("x"); + } + HSSFRichTextString rtr = new HSSFRichTextString(sb.toString()); + assertEquals(len, rtr.length()); + c.setCellValue(rtr); + } + + // Save and reload + wb = writeOutAndReadBack(wb); + s = wb.getSheetAt(0); + r = s.getRow(0); + for(int i=0; i<15; i++) { + int len = 32760 + i; + HSSFCell c = r.getCell(i); + assertEquals(len, c.getRichStringCellValue().length()); + } + } } |