Устранить проблему безопасности «Поток невыпущенных ресурсов» для попытки с ресурсом - PullRequest
0 голосов
/ 24 мая 2019

Усиление безопасности, запуск Несоответствующий код

public static A read(String path) throws IOException, ClassNotFoundException {
    try (ObjectInputStream os = new ObjectInputStream(new GZIPInputStream(new FileInputStream(path)))) {
        return (A) os.readObject();
    }
}

В нем говорится "Неизданный ресурс: потоки", но это внутри попытки с ресурсом, в чем может быть проблема? пожалуйста, помогите мне.

1 Ответ

0 голосов
/ 24 мая 2019

Вероятно, проблема, о которой беспокоится ваш инструмент, заключается в том, что если GZIPInputStream или ObjectInputStream выдает исключение во время создания экземпляра, тогда FileInputStream не будет закрыто. Вы можете попробовать следующее:

public static A read(String path) throws IOException, ClassNotFoundException {
    try (FileInputStream fileInput = new FileInputStream(path);
         GZIPInputStream gzipInput = new GZIPInputStream(fileInput);
         ObjectInputStream objectInput = new ObjectInputStream(gzipInput)) {
        return (A) objectInput.readObject();
    }
}
...