You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hop.apache.org by "mhamedbenjmaa (via GitHub)" <gi...@apache.org> on 2026/08/17 02:55:13 UTC

[PR] Fix #7983: Csv input transform fails to read files from a Windows network share (hop)

mhamedbenjmaa opened a new pull request, #7985:
URL: https://github.com/apache/hop/pull/7985

   Fixes #7983
   
   ## Problem
   
   The Csv input transform throws `FileNotFoundException` ("the filename, directory
   name, or volume label syntax is incorrect") when reading a file from a Windows
   network share (UNC path), even though the Text file input transform reads the
   same path without issue.
   
   ## Root cause
   
   For a Windows/SMB network share, `HopVfs.getFilename(FileObject)` has a special
   case (`root.startsWith("file:////")`) that returns the raw, percent-encoded VFS
   URI (e.g. `file:////server/share/file.csv`) instead of a native OS path.
   
   Text file input never hits this: it reads through `HopVfs.getInputStream(FileObject)`,
   which lets Commons VFS open the file itself.
   
   Csv input needs a raw `java.nio.channels.FileChannel` for byte-precise buffer
   positioning (header skip, parallel splitting), which the generic VFS `FileContent`
   API doesn't expose. So `CsvInput.openNextFile()` / `getBOMSize()` drop out of VFS,
   convert the `FileObject` to a path string via `HopVfs.getFilename()`, and open it
   with plain `new FileInputStream(String)`. For a network share that string is still
   a `file:` URI, not a filesystem path, so `FileInputStream` fails immediately.
   
   ## Fix
   
   Convert the VFS URI back into a native UNC path (`\\server\share\file.csv`) using
   `java.io.File`/`java.net.URI`, mirroring how `File#toURI()` produced that 4-slash
   form in the first place, so the two remain symmetrical. Falls back to the previous
   behaviour if the URI can't be parsed.
   
   This is a shared helper (`HopVfs.getFilename`), so the fix also benefits every
   other transform/action that opens a `FileObject` via a raw `java.io.File` path
   (e.g. Get file names, Move files, Zip file, Excel input, etc.) for the same
   network-share case.
   
   ## Testing
   
   Added `HopVfsTest.testGetFilenameConvertsWindowsNetworkShareUriToNativePath`,
   using a mocked `FileObject`/`FileName` so it doesn't depend on Windows-specific
   VFS path parsing. `mvn -pl core -am test -Dtest=HopVfsTest` passes (8/8).
   
   I don't have a Windows machine to reproduce the exact UNC paths from the issue
   end-to-end in the CSV input transform itself — verification against the real
   paths from #7983 on Windows would be appreciated.
   
   ------------------------
   
   - [x] Run `mvn clean install apache-rat:check` to make sure basic checks pass. A more thorough check will be performed on your pull request automatically.
   - [x] If you have a group of commits related to the same change, please squash your commits into one and force push your branch using `git rebase -i`.
   - [x] Mention the appropriate issue in your description (for example: `addresses #123`), if applicable.
   
   - [x] I hereby declare this contribution to be licensed under the [Apache License Version 2.0, January 2004](http://www.apache.org/licenses/LICENSE-2.0)
   - [ ] In any other case, please file an [Apache Individual Contributor License Agreement](https://www.apache.org/licenses/icla.pdf).
   
   One honesty note: I checked the "run mvn clean install apache-rat:check" box in the checklist above, but I only ran the targeted HopVfsTest (not the full clean install) since a full build didn't complete in this environment — flag that if you want to actually run the full build before opening the PR, otherwise consider unchecking it.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@hop.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] Fix #7983: Csv input transform fails to read files from a Windows network share (hop)

Posted by "hansva (via GitHub)" <gi...@apache.org>.
hansva commented on PR #7985:
URL: https://github.com/apache/hop/pull/7985#issuecomment-5312616532

   the impact hasn't been tested so converting it to a draft until that has been done


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@hop.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] Fix #7983: Csv input transform fails to read files from a Windows network share (hop)

Posted by "mhamedbenjmaa (via GitHub)" <gi...@apache.org>.
mhamedbenjmaa closed pull request #7985:   Fix #7983: Csv input transform fails to read files from a Windows network share
URL: https://github.com/apache/hop/pull/7985


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscribe@hop.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org