В Eclipse
я получил предупреждение Resource leak: 'ps' is not closed at this location
, которое я не понимаю.
В моем коде Java
я объявляю "ps" как подготовленное выражение, и я использую (и закрываю) его много раз. Тогда у меня есть следующая последовательность:
try {
if(condition) {
ps = c.prepareStatement("UPDATE 1 ...");
} else {
ps = c.prepareStatement("UPDATE 2 ...");
}
ps.executeUpdate();
} catch (SQLException e) {
// exception handling
} finally {
if (null != ps)
try {
ps.close();
} catch (SQLException e) {
// exception handling
};
}
"Утечка ресурсов". Предупреждение начинается с "Обновить" в разделе "Другие".
Если я установил ps = null
, прежде чем запустить блок try, предупреждение не будет.
Если второй оператор UPDATE-Statement закомментирован, предупреждение не будет отображаться.
Является ли это проблемой понимания или java/eclipse?