commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Niall Pemberton (JIRA)" <j...@apache.org>
Subject [jira] Resolved: (IO-141) Infinite loop on FileUtils.copyDirectory when the destination directory is within the source directory
Date Sat, 05 Jan 2008 15:16:34 GMT

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

Niall Pemberton resolved IO-141.
--------------------------------

    Resolution: Fixed

Mark,

Thanks for the patch Mark, but there are two issues with it. Firstly it only resolves the
recusion issue when copying to a directory directly below the destination (i.e "child"), but
not for deeper levels (i.e. grandchild or below). Secondly its inconsistent IMO since it only
partially copies the source directory and should IMO be ignoring only directories or files
created by the copy.

I have applied an alternative solution to fix this which deals with the above two issues
   http://svn.apache.org/viewvc?rev=609147&view=rev:


> Infinite loop on FileUtils.copyDirectory when the destination directory is within the
source directory
> ------------------------------------------------------------------------------------------------------
>
>                 Key: IO-141
>                 URL: https://issues.apache.org/jira/browse/IO-141
>             Project: Commons IO
>          Issue Type: Bug
>          Components: Utilities
>    Affects Versions: 1.3.2
>         Environment: Win XP
>            Reporter: Mark Bryan Yu
>            Assignee: Niall Pemberton
>            Priority: Critical
>             Fix For: 1.4
>
>         Attachments: fix_recursion_bug.patch
>
>
> When you attempt to copy a directory and the destination directory is inside the source
directory an inifinite loop occurs in the copyDirectory causing Commons-IO to create a folder
w/o stopping until its reaches OS limitation.
> This code will recreate the bug:
> FileUtils.copyDirectory(new File("C:\\temp\\test-io\\a\\."), new File("C:\\temp\\test-io\\a\\."
+ File.separator + new Date().getTime()));
> Make sure C:\temp\test-io\a exists

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message