diff --git a/config/alfresco/ibatis/org.hibernate.dialect.Dialect/locks-common-SqlMap.xml b/config/alfresco/ibatis/org.hibernate.dialect.Dialect/locks-common-SqlMap.xml index d2564bdbc7..73c084ea8a 100644 --- a/config/alfresco/ibatis/org.hibernate.dialect.Dialect/locks-common-SqlMap.xml +++ b/config/alfresco/ibatis/org.hibernate.dialect.Dialect/locks-common-SqlMap.xml @@ -40,6 +40,7 @@ + @@ -131,6 +132,7 @@ set version = version + 1, lock_token = lower(?), + start_time = ?, expiry_time = ? where excl_resource_id = ? and diff --git a/source/java/org/alfresco/repo/domain/locks/LockDAOTest.java b/source/java/org/alfresco/repo/domain/locks/LockDAOTest.java index b5b740bb43..8efcca37f0 100644 --- a/source/java/org/alfresco/repo/domain/locks/LockDAOTest.java +++ b/source/java/org/alfresco/repo/domain/locks/LockDAOTest.java @@ -26,7 +26,6 @@ package org.alfresco.repo.domain.locks; import java.util.concurrent.TimeUnit; import java.util.concurrent.locks.ReentrantLock; -import java.util.concurrent.locks.ReentrantReadWriteLock.WriteLock; import junit.framework.TestCase; diff --git a/source/java/org/alfresco/repo/domain/locks/ibatis/LockDAOImpl.java b/source/java/org/alfresco/repo/domain/locks/ibatis/LockDAOImpl.java index 5964daa65c..88303e7fcc 100644 --- a/source/java/org/alfresco/repo/domain/locks/ibatis/LockDAOImpl.java +++ b/source/java/org/alfresco/repo/domain/locks/ibatis/LockDAOImpl.java @@ -145,9 +145,9 @@ public class LockDAOImpl extends AbstractLockDAOImpl updateLockEntity.setExclusiveResourceId(lockEntity.getExclusiveResourceId()); updateLockEntity.setLockToken(lockToken); long now = System.currentTimeMillis(); - Long exp = now + timeToLive; - updateLockEntity.setStartTime(lockEntity.getStartTime()); // Keep original start time - updateLockEntity.setExpiryTime(exp); // Don't update the start time + long exp = now + timeToLive; + updateLockEntity.setStartTime(new Long(now)); + updateLockEntity.setExpiryTime(new Long(exp)); template.update(UPDATE_LOCK, updateLockEntity, 1); // Done return updateLockEntity; @@ -163,10 +163,11 @@ public class LockDAOImpl extends AbstractLockDAOImpl Map params = new HashMap(11); params.put("exclusiveLockResourceId", exclusiveLockResourceId); params.put("oldLockToken", oldLockToken); - params.put("newLockToken", oldLockToken); + params.put("newLockToken", newLockToken); long now = System.currentTimeMillis(); - Long exp = new Long(now + timeToLive); - params.put("newExpiryTime", exp); + long exp = now + timeToLive; + params.put("newStartTime", new Long(now)); + params.put("newExpiryTime", new Long(exp)); int updateCount = template.update(UPDATE_EXCLUSIVE_LOCK, params); // Done return updateCount;