[jdk17u-dev] RFR: 8316304: (fs) Add support for BasicFileAttributes.creationTime() for Linux
Severin Gehwolf
sgehwolf at openjdk.org
Thu Jan 25 16:27:40 UTC 2024
On Thu, 25 Jan 2024 15:46:25 GMT, Thomas Stuefe <stuefe at openjdk.org> wrote:
>> This is an unclean backport of the filesystem enhancement on Linux to use `statx` where available. The JDK 21u patch didn't apply cleanly because JDK 20+ has [JDK-8283335](https://bugs.openjdk.org/browse/JDK-8283335) which isn't needed for this backport. The relevant code has been adjusted to work without that enhancement being present (see different commits). Copyright dates needed manual adjusting and the test needed some trivial changes related to test lib and import so that it works (failed to compile on 17u).
>>
>> As for the code changes in `UnixNativeDispatcher.c`, the JNI method `Java_sun_nio_fs_UnixNativeDispatcher_stat1()` returning the mode for a file/directory doesn't exist in JDK 21 (again [JDK-8283335](https://bugs.openjdk.org/browse/JDK-8283335)). Therefore, I've adjusted the code to also use `statx` where available for symmetry.
>>
>> I'll follow up with the related build fix (for the test libs) in a dependent PR (JDK-8319922).
>>
>> Please review!
>>
>> Testing:
>> - [ ] GHA (still running).
>> - [x] Build test on various Linux (aarch64, Alpine x64, ppc64le, x64) and Unix OSes (AIX, Mac) so as to not break the build there.
>> - [x] Manual testing for `BasicFileAttributes.creationTime()`. Looks good.
>
> test/jdk/java/nio/file/attribute/BasicFileAttributeView/CreationTime.java line 92:
>
>> 90: supportsCreationTimeWrite = false;
>> 91: }
>> 92: System.out.println("supportsCreationTimeRead == " + supportsCreationTimeRead);
>
> We test here that modification time modification (heh) leaves creation time untouched. That is fine, but I would feel better if we were to really sleep for a second or so before that test. And then physically touch that file. In order to observe that creation time does not change but mod time does.
>
> Just an idea. (obviously not for this patch but for a potential followup upstream)
I'm not sure that's really worth it. Sleep isn't elegant either. Anyway, nothing for a backport to do.
-------------
PR Review Comment: https://git.openjdk.org/jdk17u-dev/pull/2175#discussion_r1466624996
More information about the jdk-updates-dev
mailing list