Re: [Hansel-general] (no subject)
Brought to you by:
jiriki
From: Niklas M. <wo...@un...> - 2003-05-25 18:51:33
|
peter moore wrote: > I have been getting coverage failures when I check to see if a > (database) Connection object is null. I have tests which quite clearly > test for when its null and when its not. This is a problem with bytecode instrumentation. The javac-compiler generates code for the finally block two times. The generated code look somewhat like this: try { ... calculate ... run finalizer code } catch (Exception e) { ... execute exception handler ... run finalizer code } Unfortunatly hansel is unable to find out, that this has happened. Therefor both code fragments have to be covered. What you can do to fix this is to move the finally code into a separate method: private void cleanUp(Connection con, Statement stmt, ResultSet rs) { if (con != null) { con.close(); } if (stmnt != null) { stmnt.close(); } if (rs != null) { rs.close(); } } try { ... } catch (Exception e) { ... } finally { cleanUp(con, stmnt, rs); } Hope this helps, Niklas |