[ 
https://issues.apache.org/jira/browse/IO-813?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17771063#comment-17771063
 ] 

Elliotte Rusty Harold commented on IO-813:
------------------------------------------

The JDK is not without bugs and design flaws of its own. In this case, though, 
FileTreeIterator is a non-public class and an implementation detail of 
Files.walk. Looking at the latest OpenJDK source code on github, I'm not sure 
that exception can be thrown, ever, through the public API. It looks like more 
of an assert. I might not have written that code like that but it's not as 
egregious a violation as public API that can fail non-deterministically,

> LastModifiedFileComparator should not throw exceptions, period
> --------------------------------------------------------------
>
>                 Key: IO-813
>                 URL: https://issues.apache.org/jira/browse/IO-813
>             Project: Commons IO
>          Issue Type: Bug
>            Reporter: Elliotte Rusty Harold
>            Priority: Major
>
> LastModifiedFileComparator is likely broken by design since it can 
> unexpectedly throw UncheckedIOException. This violates the contract of 
> Comparable.compareTo which is not documented to throw that exception. 
> I analyzed almost this exact case in detail here: 
> https://medium.com/@elharo/when-you-cant-throw-an-exception-b9f9b0db9ba4
> I'm not sure how to fix this now, but I'm, tempted to simply deprecate this 
> entire class.



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

Reply via email to