public static WatcherThread dirs(Collection<String> folders, final ClassRefresher refresher, Predicate<String> veto) { try { Queue<String> created = Coll.queue(); Queue<String> modified = Coll.queue(); Queue<String> deleted = Coll.queue(); FilesystemChangeQueueListener changes = new FilesystemChangeQueueListener(created, modified, deleted); new WatchingRefresherThread(folders, created, modified, deleted, refresher, veto).start(); return dirs(folders, changes); } catch (Throwable e) { Log.error("Couldn't watch for changes!", e); return null; } }