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 "Marcel Reutegger (JIRA)" <ji...@apache.org> on 2013/12/12 16:42:31 UTC

[jira] [Resolved] (OAK-1274) Wrong comparison for old Revisions

     [ https://issues.apache.org/jira/browse/OAK-1274?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Marcel Reutegger resolved OAK-1274.
-----------------------------------

       Resolution: Fixed
    Fix Version/s: 0.14

The changes to the method RevisionComparator.getRevisionSeen() in the patch were actually not quite correct.

Revisions not matching the lower bound of a range should return the lower bound of the next higher range, otherwise changes become visible in the past.

I once more updated the JavaDoc to clarify the various cases and added more tests. To be able to write those tests I had to open up some methods and field to package private to make them visible.

Fixed in http://svn.apache.org/r1550438

> Wrong comparison for old Revisions
> ----------------------------------
>
>                 Key: OAK-1274
>                 URL: https://issues.apache.org/jira/browse/OAK-1274
>             Project: Jackrabbit Oak
>          Issue Type: Bug
>          Components: core, mongomk
>    Affects Versions: 0.13
>            Reporter: Marcel Reutegger
>            Assignee: Marcel Reutegger
>            Priority: Minor
>             Fix For: 0.14
>
>         Attachments: OAK-1274.patch
>
>
> Comparing revisions may return wrong results when one of the revision is older than the oldest revision range kept in the RevisionComparator.
> There are multiple reasons why there is no revision range for a revision.
> - The revision was created more than an hour ago and the associated range was purged from the RevisionComparator. This happens in the background thread of MongoNodeStore with a threshold of one hour.
> - The revision isn't actually that old, but still included in a range of the RevisionComparator because the MongoNodeStore instance was just initialized and only has ranges for recent revisions but not for those before the init.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)