RFR: 8087112 HTTP API and HTTP/1.1 implementation

Roger Riggs Roger.Riggs at Oracle.com
Wed Feb 17 21:59:42 UTC 2016


Hi Michael,

Looks great!

With a new package, the doc will be important to help get developers 
started.
The package-info.java should help a bit more getting started.  The examples
in the HttpRequest are very informative, either the package-java should 
show an
example or be more explicit that HttpRequest is the place to start.

RequestProcessor: +126  Unclosed {@code ...
The generated javadoc comes out with visible {@link...

java/net/package-info.java:  "This API has been superseded by the newer 
HTTP client API described in the previous section."
But there is no description in a previous section.


HttpClient has a debugPrint method without a description; it may be a 
leftover from development and should be removed.

HttpClient.Builder should specify the default behavior if 
authenticator(a) is not called.
Ditto cookieManager(m).


A general statement in each class or package about throwing NPE if a 
parameter is null unless
otherwise specified might be cleaner than individual @throws clauses

RequestProcessor.onRequestStart:  there is an @returns TODO that seems 
to have been described above.


HttpResponse.BodyProcessor: If the flowController.accept is never 
called, will it hang indefinitely
or will the timeout eventually force an error.  An inadvertent 
programming error (omission) should not
hang forever without any indication.

bufferpool:  if the consumer bufferpool is never called, what happens to 
the buffers?  Are they GC'ed or leak?

The description of onResponseBodyStart returning a T that will read the 
body is a bit vague.
I'm not sure what methods on T would be used to read the body or who 
would call them.

None of these are show stoppers, but perhaps the easy ones can be done 
before the push.

Tomorrow, I'll look more closely at the implementation.

Roger



On 2/4/2016 11:14 AM, Michael McMahon wrote:
> Hi,
>
> The following webrevs are for the initial implementation of JEP 110.
> Most of it is in the jdk repository with some build configuration in 
> the top
> level repo for putting this code in its own module (java.httpclient).
>
> http://cr.openjdk.java.net/~michaelm/8087112/01/top/webrev/
>
> http://cr.openjdk.java.net/~michaelm/8087112/01/jdk/webrev/
>
> The HTTP/2 implementation will come later.
>
> Thanks,
> Michael.



More information about the net-dev mailing list