RFR: 8358688: HttpClient: Simplify file streaming in RequestPublishers.FilePublisher [v3]
Jaikiran Pai
jpai at openjdk.org
Sun Jun 8 16:40:55 UTC 2025
On Fri, 6 Jun 2025 11:49:31 GMT, Daniel Fuchs <dfuchs at openjdk.org> wrote:
>>> The "default file system" is required to support that feature, but there can be other file systems that support that too.
>>
>> I need to amend this statement: Per [`Path::toFile` specification]( https://docs.oracle.com/en/java/javase/24/docs/api/java.base/java/nio/file/Path.html#toFile()), except the default one obtained by `FileSystems::getDefault`, `FileSystem` implementations are expected to throw `UnsupportedOperationException` on `Path::toFile`. Note that this is enforced by the specification; there is technically nothing blocking a custom `FileSystem` implementation from returning a `File` (i.e., not throwing `UOE`) from `Path::toFile`.
>
> Thanks for the clarification.
Hello Volkan,
> Earlier the regular file check was performed by FIS::new at subscription, hence, NSFE (yes, FIS::new throws NSFE when passed a not-regular file, e.g., a directory) was thrown at subscribe()
The `NoSuchFileException` is a NIO construct and resides in `java.nio.file` package. So the older `java.io.FileInputStream`'s constructor throwing a `NoSuchFileException` felt odd to me. So I tried this:
jshell> new FileInputStream(new File("/tmp"))
that throws a `FileNotFoundException` (which is understandable) and not a `NoSuchFileException`
| Exception java.io.FileNotFoundException: /tmp (Is a directory)
| at FileInputStream.open0 (Native Method)
| at FileInputStream.open (FileInputStream.java:185)
| at FileInputStream.<init> (FileInputStream.java:139)
| at (#1:1)
Was it something else in that test failure which was throwing the `NoSuchFileException`?
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/25662#discussion_r2134763715
More information about the net-dev
mailing list