ALF-13028: Sharepoint broken by changes to WebDAV

Integrated fix for ALF-11777 so that locks are not kept for more than 24 hours and 24 hour or infinite locks are dropped on user's session destruction.

Extracted interface from WebDAVLockService and moved the implementation to WebDAVLockServiceImpl. Modified WebDAVLockServiceImpl to use the LockStore in-memory locking. WebDAV and SPP use WebDAVLockService instead of directly using LockStore.

 


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@35486 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Matt Ward
2012-04-20 14:33:19 +00:00
parent 617e6486cc
commit 004b2c5e60
12 changed files with 854 additions and 358 deletions

View File

@@ -334,7 +334,7 @@ public abstract class WebDAVMethod
WebDAVMethod.this.m_reader = null;
// cache current session
WebDAVLockService.setCurrentSession(m_request.getSession());
getDAVHelper().getLockService().setCurrentSession(m_request.getSession());
executeImpl();
return null;
@@ -674,13 +674,13 @@ public abstract class WebDAVMethod
}
/**
* Retrieve the (WebDAV protocol-level) {@link LockStore lock store}.
* Retrieve the (WebDAV protocol-level) locking service.
*
* @return LockStore
* @return WebDAVLockService
*/
protected final LockStore getLockStore()
protected final WebDAVLockService getDAVLockService()
{
return m_davHelper.getLockStore();
return m_davHelper.getLockService();
}
/**
@@ -1253,7 +1253,7 @@ public abstract class WebDAVMethod
*/
private LockInfo getNodeLockInfoDirect(FileInfo nodeInfo)
{
LockInfo lock = getLockStore().get(nodeInfo.getNodeRef());
LockInfo lock = getDAVLockService().getLockInfo(nodeInfo.getNodeRef());
if (lock == null)
{
@@ -1283,7 +1283,7 @@ public abstract class WebDAVMethod
*/
private LockInfo getNodeLockInfoIndirect(NodeRef parent)
{
LockInfo parentLock = getLockStore().get(parent);
LockInfo parentLock = getDAVLockService().getLockInfo(parent);
if (parentLock == null)
{