Вероятно, неразумно ожидать, что анализаторы кода узнают о таких вещах. Может ли инструмент знать всю -дополнительную семантику всех Closeables во всех библиотеках, написанных где-либо в любое время?
Доку действительно упоминает, что «текущий ResultSet, если таковой имеется, также закрыт».
Обратите внимание на «текущий». Что произойдет, если у вас два разных вызова executeQuery ()? Это потерпит неудачу из-за плохого статуса или чего-то подобного? Будут ли два разных объекта ResultSet, оба незамкнутых, и один из них теперь не будет ссылаться?
(Примечание: два разных вызова executeQuery () могут звучать совершенно безумно, но помните, что «кодеры могут делать все что угодно», и это даже очень причина , почему такие инструменты, как SonarQube написаны в первую очередь.)
Я не говорю, что это совершенно непобедимо, но мне не кажется странным, что инструмент анализа просто видит, что вы получаете закрываемый объект, а не закрываете его и просто жалуетесь на него.