question: private void process2 ( final File file ) throws InterruptedException { if ( file . isHidden ( ) ) { return ; } if ( file . isDirectory ( ) ) { if ( log . isInfoEnabled ( ) ) log . info ( "Scanning directory: " + file ) ; final File [ ] files = filter == null ? file . listFiles ( ) : file . listFiles ( filter ) ; for ( final File f : files ) { process2 ( f ) ; } } else { accept ( file ) ; } }
target:  Scans file(s) recursively starting with the named file, and, for each file that passes the filter, submits the task.