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