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