> This Pull Requests proposes an implementation for 
> [JDK-8341566](https://bugs.openjdk.org/browse/JDK-8341566): Adding the new 
> method `public static Reader Reader.of(CharSequence)` will return an 
> anonymous, non-synchronized implementation of a `Reader` for each kind of 
> `CharSequence` implementation. It is optimized for `String`, `StringBuilder`, 
> `StringBuffer` and `CharBuffer`.
> 
> In addition, this Pull Request proposes to replace the implementation of 
> `StringReader` to become a simple synchronized wrapper around 
> `Reader.of(CharSequence)` for the case of `String` sources. To ensure 
> correctness, this PR...
> * ...simply moved the **original code** of `StringBuilder` to become the 
> de-facto implementation of `Reader.of()`, then stripped synchronized from it 
> on the left hand, but kept just a synchronized wrapper on the right hand. 
> Then added a `switch` for optimizations within the original code, at the 
> exact location where previously just an optimization for `String` lived in.
> * ...added tests for all methods (`Of.java`), and applied that test upon the 
> modified `StringBuilder`.
> 
> Wherever new JavaDocs were added, existing phrases from other code locations 
> have been copied and adapted, to best match the same wording.

Markus KARG has updated the pull request incrementally with one additional 
commit since the last revision:

  fixup! Reader.of(String)
  
  Updated JavaDocs according to Alan Bateman's review comments:
  * Dropped "API compatible with StringReader" from description
  * @apiNote in StringReader refers to static factory method
  * Dropped "lock" field from API docs
  * Added "The resulting Reader is not safe for use by multiple concurrent 
threads. If the Reader is to be used by more than one thread it should be 
controlled by appropriate synchronization"
  * Deviating from your proposal, I renamed parameter "c" to "source" for 
clarity as the name "cs" already exists as an internal variable
  * Method specifies NPE for `of(null)` case
  
  I addition, JavaDocs now says "reader", not "stream" anymore.

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/21371/files
  - new: https://git.openjdk.org/jdk/pull/21371/files/dc7dc814..7b83e407

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=21371&range=01
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=21371&range=00-01

  Stats: 19 lines in 2 files changed: 3 ins; 5 del; 11 mod
  Patch: https://git.openjdk.org/jdk/pull/21371.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/21371/head:pull/21371

PR: https://git.openjdk.org/jdk/pull/21371

Reply via email to