The GitHub Actions job "Java CI" on commons-vfs.git/VFS-862 has failed. Run started by GitHub user ilang (triggered by garydgregory).
Head commit for run: 8dc607e5c34743b7c89184758498b8b0e917ee74 / Ilan Goldfeld <[email protected]> [VFS-862] Fix ON_RESOLVE triggering refresh on internal navigation CacheStrategy.ON_RESOLVE is intended to refresh files when the user resolves them via the public API. However, internal navigation methods (getParent, getRoot, getChildren child resolution, symlink resolution) also called fileSystem.resolveFile(), triggering ON_RESOLVE refreshes on files the user never asked to refresh. This became a severe regression after refresh() was changed to unconditionally clear FtpFileObject.childMap: each child's getParent() refreshed the parent, clearing its childMap, forcing a new FTP LIST command per child. A directory with N files produced ~N LIST commands instead of 1. Fix: - Add resolveFileInternal() that skips the ON_RESOLVE refresh. All internal navigation call sites use it instead of resolveFile(). - After a fresh directory listing, FTP and SFTP providers propagate metadata to cached child objects in-place, preserving object identity. This establishes a clear contract: cached state is used until the user explicitly calls refresh() or resolves via the public API. Internal navigation never triggers server operations. Tests: - FtpGetChildrenListCommandTest: verifies findFiles() on a directory with 50 files issues exactly 1 LIST command with ON_RESOLVE. - SftpGetChildrenListCommandTest: verifies refresh + findFiles() returns fresh children reflecting filesystem changes. Report URL: https://github.com/apache/commons-vfs/actions/runs/24154652334 With regards, GitHub Actions via GitBox
