Подскажите, почему не проходит 3-е условие? Разве try-w-r не закрывает всё автоматически? Либо валидатор считает не закрытыми промежуточные потоки из buffer'а?