RFR 8191416: (bf) DirectByteBuffer extends MappedByteBuffer, confuses instanceof tests
Alan.Bateman at oracle.com
Tue Feb 6 16:41:23 UTC 2018
On 06/02/2018 01:17, Brian Burkhalter wrote:
> As suggested in the issue description, change force(), load(), and isLoaded() to be no-ops when there is no backing file instead of throwing UnsupportedOperationException.
It's an undocumented implementation detail that a direct buffer is a
MappedByteBuffer. This dates back to the original implementation, is
complicated to change, and maybe we should put the effort re-visiting
it. I read this patch as a short term mitigation for those that test if
a buffer is a MappedByteBuffer so they can call force. I guess it's okay
although I do wonder if this mitigation should be limited to force and
don't touch loaded/isLoaded.
Minor comment is that the other methods uses "mapping" in the name so
maybe hasFileMapping might be better.
More information about the nio-dev