[jdk16] RFR: 8259027: NullPointerException in makeMappedSegment due to NULL Unmapper when length of segment is 0

Chris Hegarty chegar at openjdk.java.net
Tue Jan 5 14:03:03 UTC 2021

On Tue, 5 Jan 2021 12:56:49 GMT, Maurizio Cimadamore <mcimadamore at openjdk.org> wrote:

> When the size of the memory map is zero, FileChannelImpl returns a `null` Unmapper - this creates issues to the mapped memory segment implementation.
> To fix, I've created an empty mapped segment class which is initialized to sensible defaults, and whose implenentation of force/load etc. do nothing.
> We already had a test for this condition - but the test was missing the `@Test` annotation, so it was not run! I've now beefed up the test a bit to make sure that mapped segment operations do not throw.

src/jdk.incubator.foreign/share/classes/jdk/internal/foreign/MappedMemorySegmentImpl.java line 128:

> 126:                         modes, scope);
> 127:             } else {
> 128:                 return new EmptyMappedMemorySegmentImpl();

While a little pedantic, should the `mapMode` be considered so that an empty mapped segment will feature the expected access modes when queried through the `accessModes` API ?


PR: https://git.openjdk.java.net/jdk16/pull/83

More information about the core-libs-dev mailing list