Sto cercando di implementare la modifica della chiusura della connessione al database suggerita in questa domanda . Più di una volta, ho trovato questo blocco di codice alla fine dei miei blocchi di prova:
try {
-Code-
} catch(DatabaseException de) {
if(conn != null)
try{
conn.rollback();
} catch(SQLException e) { }
throw de;
} catch(SQLException se) {
if(conn != null)
try {
conn.rollback();
} catch(SQLException e) { }
throw new DatabaseException("SQLException caught: "+se.getMessage());
} finally{
if(conn != null)
try{
conn.rollback();
conn.rollback();
conn.close();
} catch(SQLException e) { }
}
Questo mi sconcerta assolutamente - perché dovremmo riavviare la nostra connessione due volte prima di chiuderla in un blocco Finally, quando stiamo già recuperando il rollback separatamente?