RFR: JDK-8262957 Fail fast in UnixFileStore.isExtendedAttributesEnabled
Sebastian Stenzel
github.com+1204330+overheadhunter at openjdk.java.net
Wed Mar 3 22:23:54 UTC 2021
Added new capability flag `UnixNativeDispatcher.SUPPORTS_XATTR`, which gets set `#ifdef _SYS_XATTR_H_`.
Note that `_SYS_XATTR_H_` is defined in `xattr.h` in both [macOS/Darwin](https://github.com/apple/darwin-xnu/blob/main/bsd/sys/xattr.h), [Linux and GNU-based BSD systems using glibc](https://github.com/bminor/glibc/blob/master/misc/sys/xattr.h). It might not be defined for other operating systems that still support xattr. So if OpenJDK eventually adds support for further platforms, this might need to be adjusted as well.
If xattr capabilities are missing, `UnixFileStore.isExtendedAttributesEnabled` will return false immediately, avoiding any I/O.
As a side effect of this change, I redefined some other (private) capabilities. Strictly speaking, this change is not required but keeps the code consistent, as [previously discussed in the mailing list](https://mail.openjdk.java.net/pipermail/nio-dev/2021-February/008133.html).
-------------
Commit messages:
- Fail fast in UnixFileStore.isExtendedAttributesEnabled if UnixNativeDispatcher doesn't support xattr
Changes: https://git.openjdk.java.net/jdk/pull/2816/files
Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=2816&range=00
Issue: https://bugs.openjdk.java.net/browse/JDK-8262957
Stats: 21 lines in 3 files changed: 19 ins; 0 del; 2 mod
Patch: https://git.openjdk.java.net/jdk/pull/2816.diff
Fetch: git fetch https://git.openjdk.java.net/jdk pull/2816/head:pull/2816
PR: https://git.openjdk.java.net/jdk/pull/2816
More information about the nio-dev
mailing list