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 "Arun Kumar Ram (Jira)" <ji...@apache.org> on 2022/09/05 12:50:00 UTC
[jira] [Commented] (OAK-9891) Removal (purge) of version of a node does not remove associated labels
[ https://issues.apache.org/jira/browse/OAK-9891?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17600385#comment-17600385 ]
Arun Kumar Ram commented on OAK-9891:
-------------------------------------
adding pull request link: https://github.com/apache/jackrabbit-oak/pull/688
> Removal (purge) of version of a node does not remove associated labels
> ----------------------------------------------------------------------
>
> Key: OAK-9891
> URL: https://issues.apache.org/jira/browse/OAK-9891
> Project: Jackrabbit Oak
> Issue Type: Bug
> Components: jcr
> Reporter: Arun Kumar Ram
> Assignee: Marcel Reutegger
> Priority: Major
> Attachments: OAK-9891_removal_of_version_should_remove_associated_labels.patch
>
> Original Estimate: 48h
> Remaining Estimate: 48h
>
> We have encountered a behavior of versionStorage and versionLabels which I think is bug.
> *Current behavior:*
>
> # Create a node and make it *versionable*
> # Now create more than two versions (for example two version is *1.0* and *1.1* respectively)
> # Now add label at version 1.0 via *VersionHistory* Object (for example label is {*}Label_1.0{*})
> # Now remove the version 1.0 via calling *removeVersion(1.0)* method of *VersionHistory* object
> # Now call method *hasVersionLabel(Label_1.0)* of versionHistory . its now returning true.
>
> *Expected behaviour:*
> Call to the *hasVersionLabel(Label_1.0)* of *versionHistory* should not return true because version associated with label does not exist. And removing the version should remove associated labels.
>
> If we say that *hasVersionLabel(Label_1.0)* of *versionHistory* returning true is expected behavior because label is not removed. Then call to the function getVersionByLabel({*}Label_1.0) of versionHistory{*} will ** throw VersionException because version does not exist. So the repository goes into inconsistent state.
> *Solution proposal:*
> One of the solution can be that whenever consumer of versionHistory removes the version , he should be forced to remove the versionLabel first by throwing LabelExistException
>
> Another solution can be we should remove version label whenever user removes the version.
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)