jackrabbit-oak-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Michael Dürig (JIRA) <j...@apache.org>
Subject [jira] [Commented] (OAK-507) MicroKernel.commit() throws NotFoundException for an existing node
Date Wed, 09 Jan 2013 09:52:12 GMT

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

Michael Dürig commented on OAK-507:
-----------------------------------

Just noted that the contract of {{MicroKernel.commit}} says: "The implementation tries to
merge changes if the revision id of the commit is set accordingly. As an example, deleting
a node is allowed if the node existed in the given revision, even if it was deleted in the
meantime." So the last line of the code given in the issue description should definitely not
fail.
                
> MicroKernel.commit() throws NotFoundException for an existing node
> ------------------------------------------------------------------
>
>                 Key: OAK-507
>                 URL: https://issues.apache.org/jira/browse/OAK-507
>             Project: Jackrabbit Oak
>          Issue Type: Bug
>          Components: mk, mongomk
>            Reporter: Michael Dürig
>
> {code}
> String base = mk.commit("", "+\"/a\":{}", null, null);
> mk.commit("", "-\"/a\"", base, null);
> assertTrue(mk.nodeExists("/a", base));
> mk.commit("", "-\"/a\"", base, null);
> {code}
> The last line throws an {{MicroKernelException}} with a {{NotFoundException}} as its
cause, which contradicts the preceding assertion.
> {code}
> Exception in thread "main" org.apache.jackrabbit.mk.api.MicroKernelException: org.apache.jackrabbit.mk.store.NotFoundException:
/a
> 	at org.apache.jackrabbit.mk.core.MicroKernelImpl.commit(MicroKernelImpl.java:499)
> 	at org.apache.jackrabbit.oak.core.Rebase.testFoo(Rebase.java:587)
> 	at org.apache.jackrabbit.oak.core.Rebase.main(Rebase.java:577)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at java.lang.reflect.Method.invoke(Method.java:597)
> 	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
> Caused by: org.apache.jackrabbit.mk.store.NotFoundException: /a
> 	at org.apache.jackrabbit.mk.model.StagedNodeTree.remove(StagedNodeTree.java:148)
> 	at org.apache.jackrabbit.mk.model.CommitBuilder$RemoveNode.apply(CommitBuilder.java:293)
> 	at org.apache.jackrabbit.mk.model.CommitBuilder.doCommit(CommitBuilder.java:120)
> 	at org.apache.jackrabbit.mk.model.CommitBuilder.doCommit(CommitBuilder.java:94)
> 	at org.apache.jackrabbit.mk.core.MicroKernelImpl.commit(MicroKernelImpl.java:489)
> {code}

--
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

Mime
View raw message