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
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.