Ostrzeżenie o wycieku zasobów w zaćmieniu

WEclipse Otrzymałem ostrzeżenieResource leak: 'ps' is not closed at this location tego nie rozumiem.

W moimJava kod deklaruję„ps” jako Przygotowane Oświadczenie i używam go (i zamykam) wiele razy. Potem mam następującą sekwencję:

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
        };
}

Ostrzeżenie „Przeciek zasobów” znajduje się w „Aktualizacji” w sekcji „Inne”. Jeśli ustawięps = null zanim zacznę blok prób, nie ma ostrzeżenia.

Jeśli drugie polecenie UPDATE-Statement zostanie skomentowane, żadne ostrzeżenie nie zostanie wyświetlone.

Czy to jest zrozumienie, czy problem java / eclipse?

questionAnswers(3)

yourAnswerToTheQuestion