RFR: 8283719: java/util/logging/CheckZombieLockTest.java failing intermittently
Alan Bateman
alanb at openjdk.java.net
Fri Apr 8 16:54:40 UTC 2022
On Fri, 8 Apr 2022 16:37:07 GMT, Daniel Fuchs <dfuchs at openjdk.org> wrote:
> Please find enclosed a patch for
> `8283719: java/util/logging/CheckZombieLockTest.java failing intermittently`
>
> My analysis is that the test fails intermittently because the `FileChannel` created by the test is garbage collected too early, which releases the associated lock before the `FileHandler` is created.
> I have replaced the `try { } finally { }` with a `try-with-resource( ) { } finally { }` which will prevent the `FileChannel` from being released before the end of the block. Additional bonus: this should also help with the code that tries to cleanup the files at the end.
>
> Though I haven't been able to reproduce the exact failure yet, I haven't observed the new version of the test failing either.
Marked as reviewed by alanb (Reviewer).
test/jdk/java/util/logging/CheckZombieLockTest.java line 247:
> 245: try (FileChannel fc = FileChannel.open(Paths.get(lock.getAbsolutePath()),
> 246: StandardOpenOption.CREATE_NEW, StandardOpenOption.APPEND,
> 247: StandardOpenOption.WRITE)) {
Changing this to use try-with-resources looks good. In passing I wonder why it calls lock.getAbsolutePath(), it's okay to call open with a relative path. Also, if you change this test to use import static then you could change this line to:
`try (FileChannel fc = FileChannel.open(Path.of(lock), CREATE_NEW, APPEND, WRITE))`
-------------
PR: https://git.openjdk.java.net/jdk/pull/8168
More information about the core-libs-dev
mailing list