We had a unit test missing for this specific use case it seems. Maybe check your test coverage (JaCoCo for example).
Gary On Mon, Dec 30, 2024, 5:22 PM Dave Garratt <davegarratt1...@gmail.com> wrote: > Well yes I suppose that would suffice - I’m just a little worried about > how much code might be broken in my dependencies as well as my own code. > > Dave > > > On 30 Dec 2024, at 21:28, Ruby Paasche <r.paas...@pripares.com> wrote: > > > > How about `dir.exists()` maybe in combination with `dir.isDirectory()`? > > > > Dave Garratt <davegarratt1...@gmail.com <mailto: > davegarratt1...@gmail.com>> schrieb am Mo., 30. Dez. 2024, 22:21: > >> I’m not sure if I understand if the usefulness of the behaviour in all > versions up to and including 2.17.0 is a bug unless something else is > happening which I’m unaware of. > >> > >> Assuming the ability to detect a path / network url is no longer valid > has gone it begs the question- is there some other mechanism within commons > io which can be used to detect the same issue. > >> > >> The application which I develop runs as a middleware solution and as a > service. When a network url is no longer available I generate an alert via > an email. > >> > >> My code simply loops around check for the presence of files in a folder > constantly. > >> > >> With the new behaviour I won’t be able to detect and report on a > failure of this kind. > >> > >> Thanks > >> > >> Dave > >> > >> > >> ‑‑ > >> Ruby Paasche > >> Senior Entwicklerin > >> <image493809.png> <https://www.linkedin.com/company/pripares-gmbh> > >> PRIPARES Software Solutions GmbH > >> Ridlerstraße 57 > >> 80339 München > >> Tel: > >> +49 (0)89 45 22 808 ‑ 30 > >> Email: > >> r.paas...@pripares.com > >> Web: > >> https://pripares.com <https://pripares.com/> > >> Handelsregister: Registergericht München HRB 138701 > >> Sitz der Gesellschaft: München > >> Geschäftsführer: Aßmann Christoph, Ertl Andreas > >> > >> Diese E‑Mail enthält vertrauliche und/oder rechtlich geschützte > Informationen. Wenn Sie nicht der richtige Adressat sind oder diese E‑Mail > irrtümlich erhalten haben, informieren Sie bitte sofort den Absender und > löschen Sie diese Mail. Das unerlaubte Kopieren sowie die unbefugte > Weitergabe dieser Mail und der darin enthaltenen Informationen sind nicht > gestattet. > >> > >> This e‑mail may contain confidential and/or privileged information. If > you are not the intended recipient (or have received this e‑mail in error) > >> please notify the sender immediately and delete this e‑mail. Any > unauthorized copying, disclosure or distribution of the material in this > e‑mail is strictly forbidden. > >> > On 30 Dec 2024, at 19:49, Gary D. Gregory <ggreg...@apache.org > <mailto:ggreg...@apache.org>> wrote: > >> > > >> > It looks like this change with by design for > https://issues.apache.org/jira/browse/IO-856 > >> > > >> > Gary > >> > > >> >> On 2024/12/30 17:54:17 "Gary D. Gregory" wrote: > >> >> Hm, we'll have to look into that one. In the meantime, I added > >> >> > >> >> org.apache.commons.io <http://org.apache.commons.io/ > >.FileUtilsListFilesTest.testListFilesMissing() > >> >> > >> >> which asserts the current behavior in git master. > >> >> > >> >> TY, > >> >> Gary > >> >> > >> >>> On 2024/12/30 17:00:17 Dave Garratt wrote: > >> >>> > >> >>> I have recently tried updating from Commons IO 2.16.1 to Commons IO > 2.18.0 > >> >>> > >> >>> My java program constantly polls a folder for the presence of > files. Normally this will be a remote folder on a windows share. > >> >>> > >> >>> In Commons IO 2.16.1 when I use FileUtils.listFiles it would > trigger an exception if the folder being polled became unavailable and I > would use this to trigger an action. > >> >>> > >> >>> In Commons IO 2.18.0 the error does not occur. > >> >>> > >> >>> I have created a very simple test program to illustrate this. > >> >>> > >> >>> Running this code with Commons IO 2.16.1 and passing an invalid > (non existent) path to it gives me the following exception (which in my > case is desirable): > >> >>> > >> >>> import java.io.File; > >> >>> > >> >>> import org.apache.commons.io <http://org.apache.commons.io/ > >.FileUtils; > >> >>> > >> >>> public class Test2161 > >> >>> { > >> >>> > >> >>> public static void main(String[] args) > >> >>> { > >> >>> File dir = new File("/Users/dave/Downloads/nonexistent"); > >> >>> > >> >>> try > >> >>> { > >> >>> FileUtils.listFiles(dir, args, false); > >> >>> } > >> >>> catch (Exception ex) > >> >>> { > >> >>> System.out.println(ex.getMessage()); > >> >>> ex.printStackTrace(); > >> >>> } > >> >>> } > >> >>> } > >> >>> > >> >>> java.nio.file.NoSuchFileException: /Users/dave/Downloads/nonexistent > >> >>> java.io.UncheckedIOException: java.nio.file.NoSuchFileException: > /Users/dave/Downloads/nonexistent > >> >>> at org.apache.commons.io <http://org.apache.commons.io/ > >.function.Uncheck.wrap(Uncheck.java:339) > >> >>> at org.apache.commons.io <http://org.apache.commons.io/ > >.function.Uncheck.get(Uncheck.java:199) > >> >>> at org.apache.commons.io <http://org.apache.commons.io/ > >.FileUtils.listFiles(FileUtils.java:2313) > >> >>> at Test2161.main(Test2161.java:14) > >> >>> Caused by: java.nio.file.NoSuchFileException: > /Users/dave/Downloads/nonexistent > >> >>> at > java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:92) > >> >>> at > java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:106) > >> >>> at > java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111) > >> >>> at > java.base/sun.nio.fs.UnixFileAttributeViews$Basic.readAttributes(UnixFileAttributeViews.java:55) > >> >>> at > java.base/sun.nio.fs.UnixFileSystemProvider.readAttributes(UnixFileSystemProvider.java:148) > >> >>> at java.base/java.nio.file.Files.readAttributes(Files.java:1851) > >> >>> at > java.base/java.nio.file.FileTreeWalker.getAttributes(FileTreeWalker.java:226) > >> >>> at > java.base/java.nio.file.FileTreeWalker.visit(FileTreeWalker.java:277) > >> >>> at > java.base/java.nio.file.FileTreeWalker.walk(FileTreeWalker.java:323) > >> >>> at > java.base/java.nio.file.FileTreeIterator.<init>(FileTreeIterator.java:71) > >> >>> at java.base/java.nio.file.Files.walk(Files.java:3918) > >> >>> at org.apache.commons.io.file.PathUtils.walk(PathUtils.java:1847) > >> >>> at org.apache.commons.io <http://org.apache.commons.io/ > >.FileUtils.streamFiles(FileUtils.java:2952) > >> >>> at org.apache.commons.io <http://org.apache.commons.io/ > >.FileUtils.lambda$listFiles$10(FileUtils.java:2313) > >> >>> at org.apache.commons.io <http://org.apache.commons.io/ > >.function.Uncheck.get(Uncheck.java:197) > >> >>> ... 2 more > >> >>> > >> >>> > >> >>> > >> >>> If however I run the same code with Commons IO 2.18.0 I get > nothing, no indication that the path is not valid which make it difficult > to determine if the folder is empty or the remote file server is shutdown. > >> >>> > >> >>> Am I supposed to use a different way to accomplish the same error > condition now ? > >> >>> > >> >>> Thanks > >> >>> > >> >>> Dave > >> >>> > >> >>> > >> >>> > --------------------------------------------------------------------- > >> >>> To unsubscribe, e-mail: user-unsubscr...@commons.apache.org > <mailto:user-unsubscr...@commons.apache.org> > >> >>> For additional commands, e-mail: user-h...@commons.apache.org > <mailto:user-h...@commons.apache.org> > >> >>> > >> >>> > >> >> > >> >> --------------------------------------------------------------------- > >> >> To unsubscribe, e-mail: user-unsubscr...@commons.apache.org <mailto: > user-unsubscr...@commons.apache.org> > >> >> For additional commands, e-mail: user-h...@commons.apache.org > <mailto:user-h...@commons.apache.org> > >> >> > >> >> > >> > > >> > --------------------------------------------------------------------- > >> > To unsubscribe, e-mail: user-unsubscr...@commons.apache.org <mailto: > user-unsubscr...@commons.apache.org> > >> > For additional commands, e-mail: user-h...@commons.apache.org > <mailto:user-h...@commons.apache.org> > >> > > >> > >> --------------------------------------------------------------------- > >> To unsubscribe, e-mail: user-unsubscr...@commons.apache.org <mailto: > user-unsubscr...@commons.apache.org> > >> For additional commands, e-mail: user-h...@commons.apache.org <mailto: > user-h...@commons.apache.org> > >> > >