On Fri, 18 Sep 2020 16:41:43 GMT, Daniel Fuchs <dfu...@openjdk.org> wrote:

>> Continuing the review with a PR...
>> 
>> 8252374: Add a new factory method to concatenate a sequence
>>          of BodyPublisher instances into a single publisher.
>> https://bugs.openjdk.java.net/browse/JDK-8252374
>> 
>> 
>> Draft CSR:
>> https://bugs.openjdk.java.net/browse/JDK-8252382
>
> Daniel Fuchs has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   Improved the API documentation of BodyPublishers::concat

Changes requested by chegar (Reviewer).

src/java.net.http/share/classes/jdk/internal/net/http/RequestPublishers.java 
line 573:

> 571:
> 572:         @Override
> 573:         public void request(long n) {

I believe that a negative demand value should result in an 
IllegalArgumentException

src/java.net.http/share/classes/jdk/internal/net/http/RequestPublishers.java 
line 502:

> 500:
> 501:     public static BodyPublisher concat(BodyPublisher... publishers) {
> 502:         if (publishers == null || publishers.length == 0) {

publishers cannot be null here - since NPE will be thrown from the API point. 
Maybe assert non-null or just remove?

src/java.net.http/share/classes/jdk/internal/net/http/RequestPublishers.java 
line 569:

> 567:             this.bodies = new ConcurrentLinkedQueue<>(bodies);
> 568:             this.subscriber = subscriber;
> 569:             scheduler = 
> SequentialScheduler.synchronizedScheduler(this::run);

It's a little unpleasant that this call to the scheduler is inside the 
constructor. I wonder if it could be located in
the subscribe method above, just after the subscription is created? (since both 
classes are in the same nest )

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

PR: https://git.openjdk.java.net/jdk/pull/57

Reply via email to