Как правильно обработать событие OVERFLOW в watchService - PullRequest
1 голос
/ 27 марта 2020

Когда я копирую 200-250 файлов в папку, все происходит идеально. Но если я выбрасываю 1000 файлов, возникает ошибка в случайном порядке - точнее, ключ получает событие event.kind() == OVERFLOW. И тогда я получаю NPE в коде. Вот и вопрос, как правильно это сделать, чтобы не потерять ключи, а правильно проверить все файлы. Спасибо

while (true) {

            WatchKey key;

            try {
                key = watchService.take();
            } catch (Exception e) {
                e.printStackTrace();
                return;
            }

            for (WatchEvent<?> event : key.pollEvents()) {

                //if key=overflow , fileName = null....

                Path fileName = ((WatchEvent<Path>) event).context();
                File newFile = new File(directory + fileName.getFileName()); 
                ListAttributes contextLoad = dataManager.load(dbUpdateWorker.contLoad(newFile));


                if (event.kind() == ENTRY_CREATE) {

Я видел похожие топи c на форуме, но не понял, как реализуется ответ ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...