diff --git a/ChangeLog b/ChangeLog index 9e7201e387..03554b46f0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,11 @@ +Wed Dec 16 00:53:14 2009 Tanaka Akira + + * lib/find.rb (Find.find): rescue more exceptions which is possible to + occur by other process change the directory tree. + Tue Dec 15 09:06:33 2009 Nobuyoshi Nakada - * lib/find.rb (Find.find): get rid of race condition. + * lib/find.rb (Find.find): get rid of race condition. Mon Dec 14 22:33:21 2009 Tanaka Akira diff --git a/lib/find.rb b/lib/find.rb index c9fee921f8..591020ea04 100644 --- a/lib/find.rb +++ b/lib/find.rb @@ -41,13 +41,13 @@ module Find yield file.dup.taint begin s = File.lstat(file) - rescue Errno::ENOENT, Errno::EACCES + rescue Errno::ENOENT, Errno::EACCES, Errno::ENOTDIR, Errno::ELOOP, Errno::ENAMETOOLONG next end if s.directory? then begin fs = Dir.entries(file) - rescue Errno::ENOENT, Errno::EACCES, Errno::ENOTDIR + rescue Errno::ENOENT, Errno::EACCES, Errno::ENOTDIR, Errno::ELOOP, Errno::ENAMETOOLONG next end fs.sort!