You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-issues@jackrabbit.apache.org by "Angela Schreiber (Jira)" <ji...@apache.org> on 2021/01/08 13:24:00 UTC
[jira] [Commented] (OAK-9187) LockOperation always calls
SessionDelegate.refresh before executing operations
[ https://issues.apache.org/jira/browse/OAK-9187?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17261299#comment-17261299 ]
Angela Schreiber commented on OAK-9187:
---------------------------------------
[~mreutegg], do you know who is maintaining the JCR locking implementation in Oak? if nobody is, could you step in an review/commit the proposed change to {{LockOperation}}? [~asanso] spotted this bug while investigating a performance issue reported with Adobe AEM.
As stated in the description read-only operations in Oak don't usually cause an automatic refresh of the Jcr Session and I think {{Node.isLocked}} should follow that pattern as well. I don't know the why this different is the case here.... but given the fact that the implementation of JCR locking is anyway broken, I see even less reason for the forced refresh upon every call to {{Node.isLocked}} or {{LockManager.isLocked}}.
having said that: I would very much appreciate if this issue would be addressed to improve the negative impact on performance associated with it.
> LockOperation always calls SessionDelegate.refresh before executing operations
> ------------------------------------------------------------------------------
>
> Key: OAK-9187
> URL: https://issues.apache.org/jira/browse/OAK-9187
> Project: Jackrabbit Oak
> Issue Type: Improvement
> Components: jcr
> Reporter: Angela Schreiber
> Priority: Major
> Attachments: OAK-9187.patch
>
>
> [~asanso] reported that calls to {{LockManager.isLocked}} (or {{Node.isLocked}}) always results in the session being forcefully refreshed. This is inconsistent with other JCR level read operations which either don't refresh at all or only refresh in the {{SessionDelegate#prePerform}} if the {{RefreshStrategy}} in place mandates it.
> The same seems to apply for those lock-related methods that include write: The session is always refreshed upon entering the methods, while other write operations either delegate refresh to the {{RefreshStrategy}} or only refresh once changes have been committed to the underlying {{Root}}.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)