Помимо использования try-with-resources, реальный ответ таков: делайте , а не делайте так.
Видите ли, вы помещаете писателя в глобальную карту.Это делает его доступным для всего мира, который имеет доступ к этой карте.И затем, некоторый код намеревается закрыть писателя, которого вы добавили на эту карту.
Но, похоже, сам писатель остается на карте.Таким образом, другой код может заметить: карта имеет регистратор / записывающее устройство ... но как этот другой код должен знать, если этот регистратор / записывающее устройство все еще открыто или было закрыто?
Наличие регистратора / записывающего устройства вэта глобальная карта, но ее нельзя использовать глобально, это само по себе противоречие!
Другими словами: концептуально то, что вы делаете, кажется неправильным.Либо вы добавляете такой регистратор / записывающее устройство к глобальной карте, затем весь код, который имеет доступ к этой карте, должен иметь возможность использовать этот регистратор / записывающее устройство (не беспокоясь «он все еще открыт?»).Или вы не помещаете регистратор / средство записи в такую глобальную карту.