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)