Не могу в отдельном потоке удалить файл

Создаю обычное консольное java-приложение, в котором запускается несколько потоков. Один из потоков в методе run принимает соединение от клиента (обычные сокеты), принимает данные (набор команд), возвращает данные, и закрывает сокет, и это в бесконечном цикле.

Одной из команд является команда на удаление определенного файла, так вот - удалить этот файл не получается метод new File(filename).delete() возвращает false, что по документации означает ошибку удаления, никакие исключения не вызываются.

Объясните мне, пожалуйста, как все-таки можно удалить этот файл, и почему он в текущем варианте не удаляется.

В документации написано, что можно securitymanager'ом проверить может ли поток удалять этот файл с помощью функции checkDelete(), пытался сделать, исключение вызывается, а текст исключения - Null, то есть ничего нового я не узнал.