You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Gary D. Gregory (Jira)" <ji...@apache.org> on 2022/08/08 14:39:00 UTC

[jira] [Updated] (IO-757) listFilesAndDirs doesn't list symbolicLinks when the original file has been deleted. The link does exist on OS

     [ https://issues.apache.org/jira/browse/IO-757?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Gary D. Gregory updated IO-757:
-------------------------------
    Fix Version/s: 2.12.0

> listFilesAndDirs doesn't list symbolicLinks when the original file has been deleted. The link does exist on OS
> --------------------------------------------------------------------------------------------------------------
>
>                 Key: IO-757
>                 URL: https://issues.apache.org/jira/browse/IO-757
>             Project: Commons IO
>          Issue Type: Bug
>          Components: Utilities
>    Affects Versions: 2.9.0
>         Environment: Discovered on macOS Monterey 12.0.1 on Apple M1 Max
> openjdk version "11.0.13" 2021-10-19 LTS
> OpenJDK Runtime Environment Zulu11.52+13-CA (build 11.0.13+8-LTS)
> OpenJDK 64-Bit Server VM Zulu11.52+13-CA (build 11.0.13+8-LTS, mixed mode)
>            Reporter: wma
>            Priority: Major
>             Fix For: 2.12.0
>
>         Attachments: commons-io-bug.zip
>
>
> When upgrading from version 2.8.0 to 2.11.0 i found out a difference in behaviour in the FileUtils.listFilesAndDirs method concerning symbolic links. I tracked it back to version 2.9.0 that introduced it. On the changelist of that release I found following that might be related/caused it:
> {quote}FileUtils.iterateFiles runs out of memory when executed for a directory with large number of files. Re-implement FileUtils' iterateFiles(), iterateFilesAndDirs(), listFiles(), listFilesAndDirs() to use NIO file tree walking instead of IO file listings to avoid memory consumption issues on large file trees. Fixes IO-597. Thanks to Gary Gregory, Arvind, Rob Spoor.
> {quote}
> The testcase is following:
> 1. create a file F in a directory D
> 2. create a symbolic link S to F in D
> 3. call FileUtils.listFilesAndDirs for D to verify setup is ok
> -> The results is 3 items, D, F and S
> 4. delete file F
> 5. call FileUtils.listFilesAndDirs for D
> -> Before release 2.9.0 the result here is 2 items. D and S, from release 2.9.0 on, the result is 1 item, only D. The symbolic link is not listed anymore while it does exist on disk still.
> I call this a bug as the result does not reflect the situation on disk and Files.list does show the symbolic link
> Included unit test project, succeeds when using version 2.8.0, fails when using 2.9.0



--
This message was sent by Atlassian Jira
(v8.20.10#820010)