RFR: 8341566: Adding factory for non-synchronized CharSequence Reader [v4]

Markus KARG duke at openjdk.org
Wed Oct 9 05:50:18 UTC 2024


On Wed, 9 Oct 2024 05:30:58 GMT, Alan Bateman <alanb at openjdk.org> wrote:

>> I have updated the source code so that it looks up `cs.length()` live each time. Nevertheless, this does not necessarily imply any predictable outcome due to the natur of an interface: Custom implementations could concurrently replace already read characters, but we need to step on with `next` for each `read()`/`skip()`, and `CharSequence` itself does not provide any read cursor means (like files have with `position()`). Because of that, I have added a warning in the JavaDocs, paraphrased from `CharSequence::chars` and `CharSequence::codePoints`: `If the sequence is concurrently modified then the result is undefined.`
>
> The sentence "If the sequence is modified .." in the these methods is in the context of the methods. For ofReader(CharSequence) then it is any modification, doesn't have to be concurrent. Maybe something like "If the sequence changes while the reader is open, e.g. the length changes, the behavior is undefined".

Thank you, Alan. I have copied your wording.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/21371#discussion_r1792880212


More information about the core-libs-dev mailing list