Я не понимаю, почему возникло состояние гонки.
Например, предположим, что один поток вызывает Files.deleteDirectoryContents()
, а второй поток (или внешний процесс) одновременно создает новый файл в каталоге.
Когда вы возвращаетесь из звонка, можете ли вы полагаться на то, что каталог пуст? Неа!
В любом случае, если вы считаете, что функциональность этого метода полезна ... несмотря на его недостатки ... вы можете взять копию кода, настроить его и встроить в свое приложение. (Просто проверьте лицензию на исходный код Guava и убедитесь, что вы соответствуете ей.)
Могут ли авторы поделиться, почему приняли это решение?
Я думаю, что они уже есть; см. уведомление об устаревании. Если вы хотите больше, попробуйте поискать трекер проблем и дискуссионную группу Guava. Вы могли бы даже попытаться вежливо спросить в дискуссионной группе, хотя, если ваша повестка дня состоит в том, чтобы изменить их мнение, я сомневаюсь, что у вас все получится.