diff --git a/util/src/main/java/com/ning/billing/util/globallocker/MySqlGlobalLocker.java b/util/src/main/java/com/ning/billing/util/globallocker/MySqlGlobalLocker.java
index 248aeef..a819a43 100644
--- a/util/src/main/java/com/ning/billing/util/globallocker/MySqlGlobalLocker.java
+++ b/util/src/main/java/com/ning/billing/util/globallocker/MySqlGlobalLocker.java
@@ -58,7 +58,6 @@ public class MySqlGlobalLocker implements GlobalLocker {
}
private GlobalLock lock(final String lockName) throws LockFailedException {
-
final Handle h = dbi.open();
final MySqlGlobalLockerDao dao = h.attach(MySqlGlobalLockerDao.class);
@@ -70,13 +69,13 @@ public class MySqlGlobalLocker implements GlobalLocker {
try {
dao.releaseLock(lockName);
} finally {
- if (h != null) {
- h.close();
- }
+ h.close();
}
}
};
} else {
+ // Make sure to close the handle if we couldn't obtain the lock (otherwise we would leak connections)
+ h.close();
return null;
}
}