Http client API
Chris Hegarty
chris.hegarty at oracle.com
Wed Aug 8 13:50:23 PDT 2012
Oh, my head hurts! ;-) There are already three setBody methods.
I agree, a boolean like this can be confusing. A
setBodyRestartable(Itr), and setBodyNonRestarable(Itr) may be a possible
solution here. But ( what I think you are suggesting too ), Iterable
implementations should do the right thing, they should always be
"restartable".
Maybe/Simply remove the restartable boolean param and put a note in the
spec that Iterable implementations that for whatever reason cannot be
restarted should perform some kind of caching. So we only support
"honest" Iterables.
Unless I'm missing some valid use-case that demands this non-restartable
API.
-Chris.
On 08/08/12 20:09, Ian Robertston wrote:
> Instead of HttpRequest having
>
> void setBody(Iterable<ByteBuffer> buffers, boolean isRestartable)
>
> what about having two methods:
>
> void setBody(Iterable<ByteBuffer> buffers) // presumed restartable
> void setBody(Iterator<ByteBuffer> buffers) // clearly not restartable
>
> Not only does this avoid a potentially confusing boolean parameter, but it also
> avoids forcing people to create "dishonest" Iterables, where they know the
> iterator() method cannot be called more than once.
>
> - Ian
>
More information about the net-dev
mailing list