RFR: 8327137: Add test for ConcurrentModificationException in BasicDirectoryModel [v3]

Alexey Ivanov aivanov at openjdk.org
Tue Mar 19 17:11:25 UTC 2024


On Fri, 15 Mar 2024 11:17:08 GMT, Alexey Ivanov <aivanov at openjdk.org> wrote:

>> test/jdk/javax/swing/plaf/basic/BasicDirectoryModel/ConcurrentModification.java line 211:
>> 
>>> 209:     private static void deleteFile(final Path file) {
>>> 210:         try {
>>> 211:             Files.delete(file);
>> 
>> Should we try to delete all files first and then throw an exception if any?
>
> I do try to remove all the files:
> 
> https://github.com/openjdk/jdk/blob/0d6be7a4e4368ea67382af4321b9483236276e5a/test/jdk/javax/swing/plaf/basic/BasicDirectoryModel/ConcurrentModification.java#L115-L120
> 
> https://github.com/openjdk/jdk/blob/0d6be7a4e4368ea67382af4321b9483236276e5a/test/jdk/javax/swing/plaf/basic/BasicDirectoryModel/ConcurrentModification.java#L202-L215
> 
> Probably, this can be chained via `handleException`. On the other hand, I don't want to fail the test if cleaning up the files fails. However, now an exception thrown from the `finally` block will override any exception thrown from the test code, which is a bad thing, so I'll need to reconsider exception handling during clean-up.
> 
> If test fails to clean up the files it created, jtreg will remove them. It is the reason why I use the current directory as the base, which is the `scratch` directory when run in jtreg.

I updated the code to avoid throwing `IOException` from cleaning up code. If an exception occurs, its stack trace is printed to `stderr`. The test will not fail if cleaning up the files fails.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/18109#discussion_r1530772076


More information about the client-libs-dev mailing list