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 2021/02/17 16:49:00 UTC

[jira] [Resolved] (IO-661) FileUtils throws inconsistent exceptions

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

Gary D. Gregory resolved IO-661.
--------------------------------
    Fix Version/s: 2.9.0
       Resolution: Fixed

> FileUtils throws inconsistent exceptions
> ----------------------------------------
>
>                 Key: IO-661
>                 URL: https://issues.apache.org/jira/browse/IO-661
>             Project: Commons IO
>          Issue Type: Bug
>          Components: Utilities
>    Affects Versions: 2.6
>            Reporter: Hao Zhong
>            Priority: Major
>             Fix For: 2.9.0
>
>          Time Spent: 1h 40m
>  Remaining Estimate: 0h
>
> The FileUtils throws inconsistent exceptions, when an input is not a directory. 
> The copyFileToDirectory throws IllegalArgumentException:
>  
> {code:java}
>   public static void copyFileToDirectory(final File srcFile, final File destDir, final boolean preserveFileDate)
>             throws IOException {
>         if (destDir == null) {
>             throw new NullPointerException("Destination must not be null");
>         }
>         if (destDir.exists() && destDir.isDirectory() == false) {
>             throw new IllegalArgumentException("Destination '" + destDir + "' is not a directory");
>         }
>         final File destFile = new File(destDir, srcFile.getName());
>         copyFile(srcFile, destFile, preserveFileDate);
>     }
> {code}
> The other methods throw IOException:
>  
>  
> {code:java}
>  public static void moveFileToDirectory(final File srcFile, final File destDir, final boolean createDestDir)
>             throws IOException {
>         validateMoveParameters(srcFile, destDir);
>         if (!destDir.exists() && createDestDir) {
>             destDir.mkdirs();
>         }
>         if (!destDir.exists()) {
>             throw new FileNotFoundException("Destination directory '" + destDir +
>                     "' does not exist [createDestDir=" + createDestDir + "]");
>         }
>         if (!destDir.isDirectory()) {
>             throw new IOException("Destination '" + destDir + "' is not a directory");
>         }
>         moveFile(srcFile, new File(destDir, srcFile.getName()));
>     }
> {code}
> I feel that IOException is more reasonable. Although the messages are the same, the different exception can cause problems when programmers catch the thrown exceptions. 
>  
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)