91057: Merged V4.2-BUG-FIX (4.2.5) to HEAD-BUG-FIX (5.0/Cloud)
90986: MNT-11732: ephemeral locks have configurable threshold over which locks will be automatically made persistent instead.
By setting the new property, administrators may control how ephemeral locks are created, for example:
property alfresco.ephemeralLock.expiryThresh=30
This will mean that when a LockService client requests that an ephemeral lock is created with a timeout of greater than 30 seconds, the lock will be created as a persistent lock instead (the ephemeral lifetime request is vetoed).
By setting this property to -1, ALL locks will be created as persistent locks (giving the old, pre-ephemeral locking behaviour). By leaving this at the default (48 hours) the newer locking behaviour is completely unaffected, e.g. ephemeral locks may be created with up to 48 hour expiry time and over this limit an exception is thrown (and the lock is not created).
By setting the value to something in between these settings it is possible to have quite a nice balance of behaviour. Using the example of 30 seconds, as above, will mean that using Share's "Edit Online" to edit a document in MS Word will result in a persistent lock (as MS Word requests approx 1 hour for its locks). After Solr has performed its next incremental index, then the Word document may be seen in the "Document's I'm Editing" filter in Share, since this is a persistent (in-DB) lock.
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@94765 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
85993 : ACE-2181 : Non-owner cannot execute cancel editing for content
- Tests changes according to new lock store behavior
86133 : ACE-2181 : Non-owner cannot execute cancel editing for content
- Added test case - attempt to unlock node by user who has ALL_PERMISSIONS
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@86239 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
84030: Merged V4.2-BUG-FIX (4.2.4) to HEAD-BUG-FIX (5.0/Cloud)
83370: Merged V4.2.3 (4.2.3.1) to V4.2-BUG-FIX (4.2.4)
79190: Merged DEV to PATCHES/V4.2.3
79172 : MNT-12049 : After uploading a document via WebDAV using DnD or copy/paste, the document appears as locked to Alfresco
- Unit test added
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@84620 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
79307: Merged V4.2-BUG-FIX (4.2.4) to HEAD-BUG-FIX (5.0/Cloud)
79080: Merged V4.2.3 (4.2.3) to V4.2-BUG-FIX (4.2.4)
78999: MNT-12049 : After uploading a document via WebDAV using DnD or copy/paste, the document appears as locked to Alfresco
- Fixed build failure
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@82699 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
73457: Merged V4.2-BUG-FIX (4.2.3) to HEAD-BUG-FIX (4.3/Cloud)
73376: Merged DEV to V4.2-BUG-FIX (4.2.3)
73246 : MNT-11615 : LockServiceImpl.getLockState() throws ClassCastException
- Added toString() call for ContentModel.PROP_LOCK_LIFETIME properties in LockableAspectInterceptor.
- Unit test was corrected.
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@74778 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
55423: ALF-20031: LockStore is no longer used as a cache for persistent locks - it only holds Lifetime.EPHEMERAL locks.
55458: ALF-20031: added repeatable read within transactions to LockStores
55461: ALF-20031: moved transactional test code into separate test classes to avoid clutter.
55470: ALF-20031: added test for LockStore reads when no transaction is available.
55473: Generated LockState.toString() to aid debugging, stack trace clarity etc.
55481: ALF-20031: added tests for null value behaviour (transactional repeatable reads).
55663: ALF-20031: (work in progress, broken tests) removing concurrency locks from AbstractLockStore.
55664: ALF-20031: moved inner Thread classes to anonymous inner classes as there will be more of these coming.
55675: ALF-20031: fixed AbstractLockStoreTxTest
55681: ALF-20031: added more test cases to AbstractLockStoreTxTest
55683: Added missing tests to enterprise.repo.cluster package's BuildSafeTestSuite.
55684: ALF-20031: Fix HazelcastLockStoreTest to clear lock store backing map in createLockStore() fixture setup.
55688: Commented LockStore.clear() as a DO NOT USE method.
55694: ALF-20031: removed LockStore.contains() as this is not required, and was currently unsafe (no repeatable reads).
55696: ALF-20031: Fix AbstractLockStore.clear(): was not clearing transactionally scoped map.
55700: ALF-20031: removed concurrency locks from LockServiceImpl.getLockState(NodeRef)
55712: ALF-20031: removed concurrency lock from LockServiceImpl.lock()
55716: ALF-20031: removed lockstore locking from LockableAspectInterceptor.
55718: ALF-20031: renamed method to isEphemeralLock()
55719: ALF-20031: removed concurrency lock from LockServiceImpl.unlock()
55728: ALF-20031: added cm:lockLifetime property to content model, and added persistence within lockservice.
55732: ALF-20031: LockableAspectInterceptor no longer uses ephemeral lockstore for setProperties() handling.
55753: ALF-20031: upon tx rollback, ephemeral locks are now rolled back to the last known value, rather than always being unlocked.
55759: ALF-20031: temporary fix, AbstractLockStoreTxTest needs further attention for thread coordination.
55760: ALF-20091: disabled spawning of new transactions in LockKeeperImpl.refreshAllLocks()
55767: ALF-20031: changed AbstractLockStore to use getFullyAuthenticatedUser() instead of getRunAsUser().
55833: ALF-20091: reverted LockKeeperImpl to previous (create new tx) behaviour. Altered test to use separate transactions per lock phase.
55855: ALF-20031: fixed ReplicationServiceIntegrationTest, LockableAspectInterceptor's handling of cm:lockLifetime.
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@55893 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261