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

Marcel Reutegger commented on OAK-442:
--------------------------------------

Added test in revision: 1408642
                
> Concurrently adding nodes fails with CommitFailedException
> ----------------------------------------------------------
>
>                 Key: OAK-442
>                 URL: https://issues.apache.org/jira/browse/OAK-442
>             Project: Jackrabbit Oak
>          Issue Type: Bug
>          Components: jcr
>    Affects Versions: 0.5
>            Reporter: Marcel Reutegger
>
> Concurrently adding nodes fails with CommitFailedException with a conflict on 
> the node type property index.
> oak-jcr currently does not retry commits. In some cases retries are not 
> useful, e.g. if conflict markers were added by AnnotatingConflictHandler. 
> However, in the case described above, the conflict is introduced by the 
> property index commit hook and a commit will eventually succeed when retried 
> often enough.
> There's one problem though, the MicroKernel API only specifies a generic 
> MicroKernelException. JavaDoc for MicroKerne.commit() does not contain too 
> much detail about the conflicting case. It currently only mentions that the 
> implementation *tries* to merge non-conflicting changes. I think we need to 
> be more specific here, even if we have to say it's implementation specific. A 
> client needs to know what it can expect. Is an implementation allowed to 
> simply overwrite a conflict? Is it a requirement to detect a conflict and 
> throw an exception (and what kind of exception)?

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to