Hello,

I just started using the DbUtils package. I was reading the source code and I noticed the following potential problem:

QueryRunner has a 'finally' clause in'query' method. This clause closes both ResultSet and the Statement. The problem is that it uses 'close' not 'closeQuietly'. So it is possible that if the ResultSet close fails, the Statement will remain open forever causing a driver/db resource leak. Shouldn't the code be rewritten with another nested 'try/finally':
try {
...
} finally {
try {
DbUtils.close(rs);
} finally {
DbUtils.close(stmt);
}
}
[Alternatively, 'closeQuetly' can be used, but that would suppress the error...]


TIA,

Alik


--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to