When the broker has lost the connection to the database through external issues – link or database goes down, the process broker will stop().
When it is shutting down, it calls on each component (service) to stop().
The DefaultDatabaseLocker when stopping will test the connection to see if it is open or not before calling close() on the connection. Given that the connection was closed due to a link failure, the connection is never returned to the pool, hence the leak.
In this same file there is a comment in start() which warns about being careful about connection leaks.