RFR: 8294008: Graphme implementation of setText() throws IndexOutOfBoundsException
Naoto Sato
naoto at openjdk.org
Mon Sep 19 21:04:52 UTC 2022
On Mon, 19 Sep 2022 20:46:08 GMT, Joe Wang <joehw at openjdk.org> wrote:
>> Fixing JCK failures caused by the new grapheme implementation. The length of a CharSequence should return the `endIndex`, not `endIndex - beginIndex`.
>
> src/java.base/share/classes/sun/util/locale/provider/BreakIteratorProviderImpl.java line 329:
>
>> 327: @Override
>> 328: public int length() {
>> 329: return src.getEndIndex();
>
> Could the issue be somewhere else? I mean it feels correct for length = endIndex - beginIndex.
It's somewhat confusing as this class adapts `CharacterIterator` into `CharSequence` which are similar to each other (thus the bug). Those `beginIndex`/`endIndex` designate the range in the source `CharacterIterator`, and this `length()` method should return the entire text length of the `CharSequence` nevertheless, thus it should start from `0` to `endIndex`.
-------------
PR: https://git.openjdk.org/jdk/pull/10349
More information about the core-libs-dev
mailing list