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 "Marco Piovesana (JIRA)" <ji...@apache.org> on 2019/03/31 14:10:00 UTC

[jira] [Commented] (OAK-8048) VersionHistory not removed when removing node and all its versions

    [ https://issues.apache.org/jira/browse/OAK-8048?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16806165#comment-16806165 ] 

Marco Piovesana commented on OAK-8048:
--------------------------------------

Hi all,

I would like to propose a solution for this bug (attached patch).

I saw that the class responsible for checking whether or not to remove the history is the {{OrphanedVersionCleaner}}, but I thought that was better to add the logic directly into {{ReadWriteVersionManager}} for three reasons:
 # All the logic used within the {{leave}} method works for nodes and not versions
 # The {{OrphanedVersionCleaner.leave}} method is called much more often than the {{ReadWriteVersionManager.removeVersion}}, that is called only when a version is removed
 # The class {{ReadWriteVersionManager}} contains already all the logic to check if the history is empty and remove it

let me know if the proposed solution if ok, or what can I do to make it better.

 

thanks, Marco.[^fix-OAK-8048.patch]

> VersionHistory not removed when removing node and all its versions
> ------------------------------------------------------------------
>
>                 Key: OAK-8048
>                 URL: https://issues.apache.org/jira/browse/OAK-8048
>             Project: Jackrabbit Oak
>          Issue Type: Bug
>          Components: core
>    Affects Versions: 1.8.9
>            Reporter: Marco Piovesana
>            Priority: Major
>         Attachments: fix-OAK-8048.patch
>
>
> Hi all,
> I'm trying to delete a node and all its versions, but the version history is not removed. I'm doing the following steps (as described in OAK-4370 and JCR-34):
>  # retrieve the version history
>  # delete the node and save the session
>  # delete all versions except for the base version
>  # save the session
> The versions are all gone but the versionHistory node, and the base version node, are still there. Am I doing something wrong? 
> The only test related to this that I found is {{ReadOnlyVersionManagerTest.testRemoveEmptyHistoryAfterRemovingVersionable}}. It does work, but uses Oak related classes and not the JCR interface.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)