* @throws ScreenLockException if the given owner is not the same as the current owner of the lock.
*/
public void release(Object currentOwner) {
lock.lock();
try {
if (!acquired) throw new ScreenLockException("No lock to release");
if (owner != currentOwner) throw new ScreenLockException(concat(currentOwner, " is not the lock owner"));
acquired = false;
owner = null;
released.signal();
} finally {
lock.unlock();