RFR: 8200610: Compiling fails with java.nio.file.ReadOnlyFileSystemException [v2]
Jonathan Gibbons
jjg at openjdk.org
Thu Dec 8 00:22:40 UTC 2022
On Thu, 17 Nov 2022 19:11:06 GMT, Archie L. Cobbs <duke at openjdk.org> wrote:
>> In `JavaCompiler`, when trying to write a class file, if an `IOException`s is thrown, instead of crashing, we report a normal error" `error while writing [file]: ...`.
>>
>> However there are some I/O errors that can generate `RuntimeException`s not caught by this logic. So instead these errors cause a compiler crash.
>>
>> An example is given in JDK-8200610, where the compiler tries to write into a ZIP file system and a `java.nio.file.ReadOnlyFileSystemException` is thrown.
>>
>> This patch adds that exception and a couple of others which (in my estimation) could reasonably be expected to be thrown in various obscure cases involving alternative file systems: `FileSystemNotFoundException` and `InvalidPathException`.
>>
>> Any suggestions on what the most appropriate list of exception types to include here are appreciated.
>
> Archie L. Cobbs has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains two additional commits since the last revision:
>
> - Merge branch 'master' into JDK-8200610
> - Catch and report some java.nio.file.* exceptions along with IOException.
src/jdk.compiler/share/classes/com/sun/tools/javac/main/JavaCompiler.java line 1643:
> 1641: if (results != null && file != null)
> 1642: results.add(file);
> 1643: } catch (IOException | FileSystemNotFoundException | InvalidPathException | ReadOnlyFileSystemException ex) {
If we're hypothesizing plausible unchecked exceptions, maybe consider adding `UncheckedIOException` ?
I'd also recommend one exception per line, breaking the line before the `|`
} catch (IOException
| FileSystemNotFoundException
| InvalidPathException
| ReadOnlyFileSystemException
| UncheckedIOException ex) {
-------------
PR: https://git.openjdk.org/jdk/pull/10818
More information about the compiler-dev
mailing list