RFR: 8207851 JEP Draft: Support ByteBuffer mapped over non-volatile memory
Alan Bateman
Alan.Bateman at oracle.com
Tue Feb 19 16:55:13 UTC 2019
On 18/02/2019 11:15, Andrew Dinn wrote:
> :
> Alan, I'll wait for your follow-up note before responding regarding the
> arguments to force. I'll just note that the latest JEP draft accepts
> start position and length [i.e. force(from, length)] rather than start
> position and end position [i.e. force(from, to)]. I thought this would
> be easier for clients to get right -- less danger of out by one errors.
>
The issues with the 2-arg force method that I think need discussion are:
1. long from/to vs. from/length vs int index/length. Elements in
buffers, or the starting index of a region, are addressed by an int
index in the existing API. We are currently discussing absolute bulk
get/put methods on nio-dev right now and the methods on the table use
"int length", this is mostly because they are about bulk copying in/out
of byte arrays where offet+length is the norm.
2. limit vs. capacity. If I read the webrev correctly, it checks the
upper bound against the buffer capacity. I don't think we have any
existing methods where you can specify an index that is >= limit.
3. The javadoc doesn't specify the exception thrown when the bounds
checks fail. In the webrev I see that IAE is thrown but the existing
buffer methods specify IIOBE. If you agree then it means you can replace
the checks with one method:
Objects.checkFromIndexSize(index, length, limit());
I think that's it.
-Alan
More information about the core-libs-dev
mailing list