наблюдать за сервисом, обновляющим один файл два раза

Я использую службу часов в первый раз, я пытаюсь обновить файл с помощью службы часов, но он обновляет этот файл два раза.

        boolean valid = true;
        do{
          WatchKey watchKey = watchService.take();
          for(WatchEvent<?> event : watchKey.pollEvents()){
          WatchEvent.Kind kind = event.kind();

                if(StandardWatchEventKinds.ENTRY_CREATE.equals(kind)){
                    String fileName = event.context().toString();
                }

                if(StandardWatchEventKinds.ENTRY_MODIFY.equals(kind)){
                    String fileName = event.context().toString();
                }

                if(StandardWatchEventKinds.ENTRY_DELETE.equals(kind)){
                    String fileName = event.context().toString();
                }
            }
            valid = watchKey.reset();
        }while(valid);

Иногда я также получаю другую ошибку, когда хочу снова создать тот же файл сразу после удаления первого файла. тогда я получаю ошибку ниже

java.io.FileNotFoundException: D:\Watson\docs\FMO-OMS_Requirements.docx (The process cannot access the file because it is being used by another process)


person Manish Verma    schedule 28.05.2018    source источник
comment
Вероятно, вы получаете два события? Например, одно изменение и одно создание   -  person Veselin Davidov    schedule 28.05.2018
comment
Нет, когда я создаю новый файл, он получает два разных события (создание и изменение), но когда я обновляю файл, он получает одно и то же событие (изменение) два раза?   -  person Manish Verma    schedule 28.05.2018
comment
Возможный дубликат Java 7 WatchService - игнорирование нескольких вхождений то же событие   -  person JEY    schedule 28.05.2018
comment
Я меняю свой сервисный код часов, как показано ниже: -   -  person Manish Verma    schedule 30.05.2018
comment
Но что происходит сейчас? Когда я использую его в режиме дублирования, все работает нормально, но когда я запускаю его в обычном режиме, он работает только для первого события.   -  person Manish Verma    schedule 30.05.2018