Вы устанавливаете «не следовать» в неправильном месте. Используйте
files.setFollowSymlinks( false );
вместо
files.getDirectoryScanner().setFollowSymlinks( false );
Код, который вы разместили, будет устанавливать «не следовать символическим ссылкам» только при сканировании ниже каталога верхнего уровня набора файлов. Сим-ссылки в каталоге верхнего уровня будут по-прежнему отслеживаться.
Непонятно из того, что вы опубликовали, что именно вызывает IOException в методе causesIllegalSymlinkLoop()
(это исключение фиксируется в строке 1859).
Но если вы зададите not-follow для набора файлов, а не его сканера внутренней директории, метод не будет вызываться вообще.