Files.walkFileTree() visits a file leading to a loop with LOOP_DETECT option enabled

Rajendra Gutupalli Rajendra.Gutupalli at Sun.COM
Fri Aug 8 00:17:13 PDT 2008


Alan Bateman wrote:
>
> The lines with "(skip)" are where a cycle is detected and aren't 
> (currently) notified to you.
Hi Alan, with the fix you have given I got the output for the following 
directory structure.Now all the cycles are getting notified

/java
       Start
              DirP
                    DirQ
                            DirT
                                    dirVlink - > Start/DirP/DirV
                     DirV
                             start_link -> /java/Start
                      dirTlink_forward -> Start/DirP/DirQ/DirT
               DirJ
                      dirjfile


output: Files.walkFileTree(Paths.get("/java"), 
EnuSet.allOf(FileVisitOption.class),-1,new MyFileVisitor());

(pre) /java/Start
(pre) /java/Start/DirP
(pre) /java/Start/DirP/DirQ
(pre) /java/Start/DirP/DirQ/DirT
(pre) /java/Start/DirP/DirQ/DirT/dirVlink
(visit file) /java/Start/DirP/DirQ/DirT/dirVlink/start_link
(post) /java/Start/DirP/DirQ/DirT/dirVlink
(post) /java/Start/DirP/DirQ/DirT
(post) /java/Start/DirP/DirQ
(pre) /java/Start/DirP/DirV
(visit file) /java/Start/DirP/DirV/start_link
(post) /java/Start/DirP/DirV
(pre) /java/Start/DirP/dirTlink_forward
(pre) /java/Start/DirP/dirTlink_forward/dirVlink
(visit file) /java/Start/DirP/dirTlink_forward/dirVlink/start_link
(post) /java/Start/DirP/dirTlink_forward/dirVlink
(post) /java/Start/DirP/dirTlink_forward
(post) /java/Start/DirP
(pre) /java/Start/DirJ
(visit file) /java/Start/DirJ/dirjfile
(post) /java/Start/DirJ
(post) /java/Start


ls -lR report
bash-3.00$ ls -lR /java/Start/
/java/Start/:
total 4
drwxrwxrwx   2 rg157576 staff        512 Aug  8 12:08 DirJ
drwxrwxrwx   4 rg157576 staff        512 Aug  8 12:05 DirP

/java/Start/DirJ:
total 0
-rw-rw-rw-   1 rg157576 staff          0 Aug  8 12:08 dirjfile

/java/Start/DirP:
total 6
drwxrwxrwx   3 rg157576 staff        512 Aug  8 11:57 DirQ
drwxrwxrwx   2 rg157576 staff        512 Aug  8 12:07 DirV
lrwxrwxrwx   1 rg157576 staff         27 Aug  8 12:05 dirTlink_forward 
-> /java/Start/DirP/DirQ/DirT/

/java/Start/DirP/DirQ:
total 2
drwxrwxrwx   2 rg157576 staff        512 Aug  8 12:06 DirT

/java/Start/DirP/DirQ/DirT:
total 2
lrwxrwxrwx   1 rg157576 staff         22 Aug  8 12:06 dirVlink -> 
/java/Start/DirP/DirV/

/java/Start/DirP/DirV:
total 2
lrwxrwxrwx   1 rg157576 staff         12 Aug  8 12:07 start_link -> 
/java/Start/



Thanks
Rajendra.



More information about the nio-dev mailing list