Если вы смотрите каталог в Windows, то реализация WatchService имеет открытый дескриптор этого каталога (так работает Windows). Этот открытый дескриптор не препятствует удалению каталога, но предотвращает немедленное удаление родительского каталога. Как только вы удаляете наблюдаемый каталог, дескриптор закрывается, но возможно, что вы попытаетесь удалить каталог до того, как дескриптор будет закрыт. Когда это произойдет, вы получите отказ в доступе, который вы видите. Я полагаю, что это нормально для вас, если вы повторите попытку, потому что к тому времени, когда вы повторите попытку, ручка будет закрыта.
Sun JRE в Windows может использовать возможность наблюдения за поддеревом Windows, если в вызове register
указан модификатор ExtendedWatchEventModifier.FILE_TREE
, что может помочь обойти эту проблему, поскольку создает только один дескриптор файла.