m. c3p0 is careful to clean up unclosed Statements for you when you check in Connections (or in this case, when a PooledConnection is being removed from the pool), but if Exceptions occur when it does, they will be reported as an Exception during resource-cleanup, i.e. during close(). he is what you are seeing.