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

   ## Summary
   
   Spark file output on Windows `local[*]` still fails after #8951 when the 
commit lists the output directory. Hadoop 3.4.2 `FileUtil.canRead` calls 
`NativeIO.Windows.access0` on every Windows directory listing and does not 
check that `hadoop.dll` loaded. `UnsatisfiedLinkError` is not an `IOException`, 
so it escapes. The fallback from #8951 skipped chmod and owner lookups only.
   
   A `file:///` path is how that write reaches the local file system. A typed 
`file:///C:/...` URI, or a variable such as `${PROJECT_HOME}` stored as a VFS 
file URI, resolves to the `file` scheme and is passed to Spark unchanged. It 
uses `fs.file.impl`. Stripping the prefix still lists the directory through the 
same local file system. The minimal Generate Rows pipeline never lists a 
directory, which is why it succeeds while Spark File Output fails. `Reusing 
default SparkSession` means this run kept the session the earlier pipeline 
created. That session already had the fallback, and the stack still names 
`RawLocalFileSystem.listStatus` because the method was inherited.
   
   The Windows raw file system now lists with `java.io.File` when winutils and 
the native library are both absent. Checksum files stay hidden by the checksum 
wrapper. `hdfs://` and `s3a://` are unchanged.
   
   Fixes #9113
   
   ## Test plan
   
   - [x] `HopWindowsLocalFileSystemTest` (4) on Linux: decision table, 
mkdir/create, `file:///` listing through the Java path (checksum file hidden, 
missing path, single file), unreadable directory
   - [x] Checkstyle on `hop-engines-spark` (0 violations) and Spotless
   - [ ] Windows `local[*]` Spark File Output to a `file:///` directory with 
`HADOOP_HOME` unset
   
   ------------------------
   
   - [ ] 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).


-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to