From: <va...@us...> - 2008-06-29 01:44:04
|
Revision: 12964 http://jedit.svn.sourceforge.net/jedit/?rev=12964&view=rev Author: vanza Date: 2008-06-28 18:44:01 -0700 (Sat, 28 Jun 2008) Log Message: ----------- Now actually avoid symlink loops (note to self: test a little bit more before checking in). Modified Paths: -------------- jEdit/trunk/org/gjt/sp/jedit/io/VFS.java Modified: jEdit/trunk/org/gjt/sp/jedit/io/VFS.java =================================================================== --- jEdit/trunk/org/gjt/sp/jedit/io/VFS.java 2008-06-29 01:37:52 UTC (rev 12963) +++ jEdit/trunk/org/gjt/sp/jedit/io/VFS.java 2008-06-29 01:44:01 UTC (rev 12964) @@ -1071,15 +1071,22 @@ List<String> files, String directory, VFSFileFilter filter, boolean recursive, Component comp, boolean skipBinary, boolean skipHidden) throws IOException { - if(stack.contains(directory)) + String resolvedPath = directory; + if (recursive && !MiscUtilities.isURL(directory)) { + // resolve symlinks to avoid loops + resolvedPath = MiscUtilities.resolveSymlinks(directory); + } + + if(stack.contains(resolvedPath)) + { Log.log(Log.ERROR,this, "Recursion in _listDirectory(): " + directory); return; } - stack.add(directory); + stack.add(resolvedPath); Thread ct = Thread.currentThread(); WorkThread wt = null; @@ -1106,21 +1113,12 @@ { if(recursive) { - // resolve symlinks to avoid loops String canonPath = _canonPath(session, file.getPath(),comp); - if(!MiscUtilities.isURL(canonPath)) - { - String resolvedPath = - MiscUtilities.resolveSymlinks(canonPath); - stack.add(resolvedPath); - } - listFiles(session,stack,files, canonPath,filter,recursive, comp, skipBinary, skipHidden); } - } else // It's a regular file { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |