[ https://issues.apache.org/jira/browse/TEXT-236?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Gary D. Gregory updated TEXT-236: --------------------------------- Summary: Inserting at end of a TextStringBuilder throws a StringIndexOutOfBoundsException (was: TextStringBuilder inserting at end throws StringIndexOutOfBoundsException) > Inserting at end of a TextStringBuilder throws a > StringIndexOutOfBoundsException > -------------------------------------------------------------------------------- > > Key: TEXT-236 > URL: https://issues.apache.org/jira/browse/TEXT-236 > Project: Commons Text > Issue Type: Bug > Affects Versions: 1.13.0, 1.13.1 > Reporter: Pierre Post > Priority: Major > > The methods > {{TextStringBuilder#insert(...)}} > throw a {{StringIndexOutOfBoundsException}} when you try to insert something > at the end of the buffer. Nevertheless, the documentation of > {{validateIndex()}} still states "{_}Validates that an index is in the range > 0 <= index *<=* size.{_}" > I think this is really an unexpected behavior and also differs from the > behavior from {{java.lang.StringBuilder}} and > {{{}org.apache.commons.text.StrBuilder{}}}, as the following example shows: > {code:java} > StringBuilder stringBuilder = new StringBuilder(); > // works as expected > stringBuilder.insert(0, "test"); > StrBuilder strBuilder = new StrBuilder(); > // works as expected > strBuilder.insert(0, "test"); > TextStringBuilder textStringBuilder = new TextStringBuilder(); > // throws java.lang.StringIndexOutOfBoundsException: String index out of > range: 0 > textStringBuilder.insert(0, "test"); > {code} > However, care must be taken, as {{validateIndex()}} is also used by the > various char methods (e.g. {{{}setCharAt(){}}}) where the current validation > IS justified. Validation should be separated for these two use cases so that > insertion at the end of the buffer is again possible. -- This message was sent by Atlassian Jira (v8.20.10#820010)