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)