Affects Version/s: None
Fix Version/s: None
Use Case - Creating version of a node, that is itself locked or has locked descendant nodes.
Impersonated user doesn’t have support for relaxed locking and hence version checkout operation fails.
Possible Solutions :
OAK provides support for relaxed locking with impersonated user - This would be the preferred choice for us. It would make relaxed locking consistent across user logged-in sessions and impersonated sessions (sync v async).
Using 'unlock-with-lock-token' approach in AEM - Technically it's possible to do this, but we have the following concerns related to this approach :
- This approach requires all such lock tokens to be acquired at the time of session creation and then adding them to the session scope. It's not feasible to have this information available beforehand all the time, and as such is prone to failures.
- We might need to do traversals from the root node onwards, to find all such locked nodes and then recover lock tokens. Lock management is pretty low level handling, and exposing this much dependency on the application side would be a risk.
- For Customers with heavy content packages and thousands of references, traversals for recovery of lock tokens would add additional load on the system and could negatively impact performance.
Overall we feel that the long term solution to this, would be to add the support for relaxed locking with impersonated sessions.