* {@inheritDoc}
*/
@Override
protected synchronized void internalLock(String sessionId, String nodeIdentifier) throws LockException
{
CacheableSessionLockManager session = sessionLockManagers.get(sessionId);
if (session != null && session.containsPendingLock(nodeIdentifier))
{
LockData lockData = session.getPendingLock(nodeIdentifier);
// this will return null if success. And old data if something exists...
LockData oldLockData = doPut(lockData);
if (oldLockData != null)
{
throw new LockException("Unable to write LockData. Node [" + lockData.getNodeIdentifier()
+ "] already has LockData!");
}
session.notifyLockPersisted(nodeIdentifier);
}
else
{
throw new LockException("No lock in pending locks");
}