Собственно суть. Вроде как все вызывает. Пробовал без перехвата исключений вообще, просто пробросить вверх - тот же пункт не проходит.
if (!fileName.matches("^.*\\.txt$")) {
    closeQuietly();
    throw new UnsupportedFileNameException();
}
Решил что нужно вызвать close именно перехватив исключение, но. Если словить UnsupportedFileNameException - ругается еще и на предпоследний пункт.
try {
    if (!fileName.matches("^.*\\.txt$")) {
        throw new UnsupportedFileNameException();
    }
}catch (UnsupportedFileNameException ex){
    closeQuietly();
}
Попробовал словить - закрыть поток, потом кинуть новый ексепшн, тоже нет. Ему нужен явный вызов close именно в конструкторе или как?