Summary: | Multible calls of TextRun.changeTextInRichTextRun causes Exception | ||
---|---|---|---|
Product: | POI | Reporter: | Thorsten <thorstenbux> |
Component: | HSLF | Assignee: | POI Developers List <dev> |
Status: | RESOLVED WORKSFORME | ||
Severity: | normal | ||
Priority: | P2 | ||
Version: | 3.0-FINAL | ||
Target Milestone: | --- | ||
Hardware: | PC | ||
OS: | Windows XP | ||
Attachments: | sample source code |
I quickly tried to reproduce this old bug report, but could not. Also the code that you posted is not self-sufficient, so it is hard to exactly run what you did back then. So I believe that this is fixed in the meantime and thus will close this as WORKSFORME for now. If this is still a problem for you then please reopen the bug together with a self-sufficient unit test and any sample files that are used in the test so we can reproduce the problem. |
Created attachment 22479 [details] sample source code Hi, I try to update RichTextRun-Objects in a TextRun-Object. When I call TextRun.changeTextInRichTextRun(RichTextRun[0],"") the first time everything works fine. But when I call it a second time TextRun.changeTextInRichTextRun(RichTextRun[1],"Hello") I get the following Exception: Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 68 at java.lang.String.substring(Unknown Source) at org.apache.poi.hslf.usermodel.RichTextRun.getRawText(RichTextRun.java:158) at org.apache.poi.hslf.model.TextRun.changeTextInRichTextRun(TextRun.java:435) at substitutionClassesForPptParser.SimpleSubstitution.handeSubstitution(SimpleSubstitution.java:99) at methodsFromPptParser.ProcessPptDocumet.importPlaceholder(ProcessPptDocumet.java:94) at Tester.main(Tester.java:16) I try something like that. RichTextRun[0] --> "Hello" RichTextRun[1] --> "World" RichTextRun[2] --> "POI" TextRun.changeTextInRichTextRun(RichTextRun[0], ""); TextRun.changeTextInRichTextRun(RichTextRun[1], "Java"); TextRun.changeTextInRichTextRun(RichTextRun[0], "Apache"); I have attached some sample source code