Я пишу плагин Maven, который удаляет и переименовывает различные файлы, используя методы File.delete()
и File.renameTo(File)
JDK.
Примерно каждый раз, когда я запускаю плагин, одна из этих операций завершается неудачно, икаждый раз, когда это терпит неудачу, это - другой файл, который не может быть удален или переименован.Очевидное объяснение того, почему файл не может быть удален, состоит в том, что его использует другой процесс (я работаю в Windows), но я понятия не имею, какой процесс может быть ответственным.Тот факт, что проблема не может быть воспроизведена последовательно, предполагает проблему с многопоточностью, но плагины AFAIK, Maven запускаются в одном потоке.Трудно получить какую-либо информацию о причине проблемы, потому что методы, упомянутые выше, не генерируют исключения, они просто возвращают false.
Есть ли способ программно обнаружить заблокированный файл и имяпроцесс удерживает блокировку?В качестве альтернативы, если у кого-то есть другие предложения о том, как отладить такую проблему, как эта, отправьте их.
Спасибо, Дон