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

Marcel Reutegger commented on OAK-2020:
---------------------------------------

The DocumentNodeState.equals() method must be changed. The lastRevision is not 
an accurate indicator whether two nodes are equal. It can be use in 
compareAgainstBaseState() because NodeStateDiff.childNodeChanged() is fuzzy. 
The method is called when there *may* be changes. This is what the 
DocumentNodeStore will do when it compares two nodes with different 
lastRevisions even though in reality the sub tree did not changes. The equals() 
method must be more strict. 

> NodeState view at given version is not stable with DocumentNodeStore
> --------------------------------------------------------------------
>
>                 Key: OAK-2020
>                 URL: https://issues.apache.org/jira/browse/OAK-2020
>             Project: Jackrabbit Oak
>          Issue Type: Bug
>          Components: mongomk
>            Reporter: Chetan Mehrotra
>             Fix For: 1.1
>
>
> DocumentNodeStore should provide same NodeState for given (path, revision)  
> whenever a NodeState is obtained from it. This fails in some cases if the 
> Node cache in DocumentNodeStore gets overflown and then the NodeState 
> returned differs. This causes issues like
> # Spurious Commits see - Some commit would fails with conflicts in paths 
> which were not modified in that commit
> # Diff logic would traverse those paths which are not related to changes done 
> in that commit
> More details would be provided in comments below



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to